摘要: 1.类和对象 1.1类和对象的基本概念 1.1.1C和C++中struct区别 c语言struct只有变量 c++语言struct 既有变量,也有函数 1.1.2 类的封装 ​ 我们编写程序的目的是为了解决现实中的问题,而这些问题的构成都是由各种事物组成,我们在计算机中要解决这种问题,首先要做就是要 阅读全文
posted @ 2023-02-13 23:46 nullptrException 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 仿照java的servlet,实现了一套Servlet接口,实现了ServletDispatch,FunctionServlet。NotFoundServlet。支持uri的精准匹配,模糊匹配等功能。和HTTP模块,一起提供HTTP服务器功能 阅读全文
posted @ 2023-02-13 17:52 nullptrException 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 采用Ragel(有限状态机,性能媲美汇编),实现了HTTP/1.1的简单协议实现和uri的解析。基于SocketStream实现了HttpConnection(HTTP的客户端)和HttpSession(HTTP服务器端的链接)。基于TcpServer实现了HttpServer。提供了完整的HTTP 阅读全文
posted @ 2023-02-13 17:52 nullptrException 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 封装流式的统一接口。将文件,socket封装成统一的接口。使用的时候,采用统一的风格操作。基于统一的风格,可以提供更灵活的扩展。目前实现了SocketStream 阅读全文
posted @ 2023-02-13 17:52 nullptrException 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 基于Socket类,封装了一个通用的TcpServer的服务器类,提供简单的API,使用便捷,可以快速绑定一个或多个地址,启动服务,监听端口,accept连接,处理socket连接等功能。具体业务功能更的服务器实现,只需要继承该类就可以快速实现 阅读全文
posted @ 2023-02-13 17:52 nullptrException 阅读(18) 评论(0) 推荐(0) 编辑
摘要: ByteArray二进制序列化模块,提供对二进制数据的常用操作。读写入基础类型int8_t,int16_t,int32_t,int64_t等,支持Varint,std::string的读写支持,支持字节序转化,支持序列化到文件,以及从文件反序列化等功能 阅读全文
posted @ 2023-02-13 17:50 nullptrException 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 封装了Socket类,提供所有socket API功能,统一封装了地址类,将IPv4,IPv6,Unix地址统一起来。并且提供域名,IP解析功能。 阅读全文
posted @ 2023-02-13 17:50 nullptrException 阅读(24) 评论(0) 推荐(0) 编辑
摘要: hook系统底层和socket相关的API,socket io相关的API,以及sleep系列的API。hook的开启控制是线程粒度的。可以自由选择。通过hook模块,可以使一些不具异步功能的API,展现出异步的性能。如(mysql) 阅读全文
posted @ 2023-02-13 17:49 nullptrException 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 继承与协程调度器,封装了epoll(Linux),并支持定时器功能(使用epoll实现定时器,精度毫秒级),支持Socket读写时间的添加,删除,取消功能。支持一次性定时器,循环定时器,条件定时器等功能 阅读全文
posted @ 2023-02-13 17:49 nullptrException 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 协程调度器,管理协程的调度,内部实现为一个线程池,支持协程在多线程中切换,也可以指定协程在固定的线程中执行。是一个N-M的协程调度模型,N个线程,M个协程。重复利用每一个线程。 阅读全文
posted @ 2023-02-13 17:47 nullptrException 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 协程:用户态的线程,相当于线程中的线程,更轻量级。后续配置socket hook,可以把复杂的异步调用,封装成同步操作。降低业务逻辑的编写复杂度。 目前该协程是基于ucontext_t来实现的,后续将支持采用boost.context里面的fcontext_t的方式实现 阅读全文
posted @ 2023-02-13 17:46 nullptrException 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 线程模块,封装了pthread里面的一些常用功能,Thread,Semaphore,Mutex,RWMutex,Spinlock等对象,可以方便开发中对线程日常使用 为什么不适用c++11里面的thread 本框架是使用C++11开发,不使用thread,是因为thread其实也是基于pthread 阅读全文
posted @ 2023-02-13 17:46 nullptrException 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 2.配置模块 采用约定由于配置的思想。定义即可使用。不需要单独去解析。支持变更通知功能。使用YAML文件做为配置内容。支持级别格式的数据类型,支持STL容器(vector,list,set,map等等),支持自定义类型的支持(需要实现序列化和反序列化方法)使用方式如下: 点击查看代码 static 阅读全文
posted @ 2023-02-13 17:45 nullptrException 阅读(25) 评论(0) 推荐(0) 编辑