首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
handy源码阅读(二):EventsImp类
】的更多相关文章
xxl-job源码阅读二(服务端)
1.源码入口 xxl-job-admin是一个简单的springboot工程,简单翻看源码,可以很快发现XxlJobAdminConfig入口. @Override public void afterPropertiesSet() throws Exception { adminConfig = this; xxlJobScheduler = new XxlJobScheduler(); xxlJobScheduler.init(); } 我们就可以顺着这个XxlJobScheduler,分析下…
Spring 源码阅读 二
程序入口: 接着上一篇博客中看完了在AnnotationConfigApplicationContext的构造函数中的register(annotatedClasses);将我们传递进来的主配置类添加进了BeanFactory, 本片博客继续跟进refresh(); 看看Spring如何继续初始化Spring的环境 public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { this(); register…
handy源码阅读(二):EventsImp类
EventsImp用于完成事件的处理. class EventsImp { EventBase* base_; PollerBase* poller_; std::atomic<bool> exit_; ]; int nextTimeout_; SafeQueue<Task> tasks_; std::map<TimerId, TimerRepeatable> timerReps_; std::map<TimerId, Task> timers_; std:…
handy源码阅读(一):EventBase类
类EventBase继承于类EventBases,继承于noncopyable. 其中noncopyable是一个去除了拷贝构造和赋值构造的类. noncopyable: class noncopyable { public: noncopyable() = default; virtual ~nonocopyable() = default; noncopyable(const noncopyable& non) = delete; noncopyable& operator=(con…
handy源码阅读(六):tcp类
首先是tcpconn和tcpserver类: struct TcpConn : public std::enable_shared_from_this<TcpConn>, private noncopyable { enum State { Invalid = 1, Handshaking, Connected, Closed, Failed, }; TcpConn(); virtual ~TcpConn(); template <class C = TcpConn> static…
handy源码阅读(六):udp类
分为UdpServer类和UdpConn类. struct UdpServer : public std::enable_shared_from_this<UdpServer>, private noncopyable { UdpServer(EventBases* bases); int bind(const std::string& host, unsigned short port, bool reusePort = false); static UpdServerPtr sta…
handy源码阅读(四):Channel类
通道,封装了可以进行epoll的一个fd. struct Channel: private noncopyable { Channel(EventBase* base, int fd, int events); ~Channel(); EventBase* getBase() { return base_; } int fd() { return fd_; } //通道id int64_d id() { return id_; } short events() { return events_;…
handy源码阅读(三):SafeQueue类
SafeQueue类继承与信号量mutex(用于加锁),nonocopyable 定义如下: template <typename T> struct SafeQueue : private std::mutex, private noncopyable { static const int wait_infinite = std::numeric_limits<int>::max(); SafeQueue(size_t capacity = ) : capacity_(capac…
handy源码阅读(五):PollerBase类
使用poll内核函数等待事件发生: struct PollerBase: private noncopyable { int64_t id_; int lastActive_; PollerBase(): lastActive_(-) { ); id_ = ++id; } ; ; ; virtual ~PollerBase() {}; }; struct PollerEpoll : public PollerBase { int fd_; std::set<Channel*> liveChan…
klee源码阅读笔记1--STPBuilder类
初始化过程中四个数据成员中的两个数据成员被初始化: 一.vc被初始化为STP提供的C调用接口函数vc_createValidityChecker(): 二.optimizeDivides被初始化为false 重点探讨另外两个数据成员. 一.ExprHashMap constructed ExprHashMap< std::pair<ExprHandle, unsigned> > constructed; ExprHashMap为一个模板类, 继承unorderedmap,由于自定义…