5 #ifndef EMX_EUVLOOP_HPP
6 #define EMX_EUVLOOP_HPP
10 #include "core/EmxTypeDef.hpp"
74 const char *
GetName() {
return m_name.c_str(); }
104 uv_thread_t m_thread;
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
void PrintAllHandles()
打印绑定到loop中的所有句柄
Definition: EuvLoop.hpp:83
std::function< void()> Callback
当循环退出时触发的回调,在此回调中应关闭所有未关闭的绑定到此loop的描述符,否则循环将一直阻塞无法退出
Definition: EuvLoop.hpp:22
const char * GetName()
获取loop名字
Definition: EuvLoop.hpp:74
void PrintActiveHandles()
打印绑定到loop中的所有正在监听状态的句柄
Definition: EuvLoop.hpp:86
void StopAndDeInit()
一次性调用Stop和DeInit两个函数,当只有一个loop需要停止时调用此函数,当有多个loop都需要停止时, 可以先调用所有loop的Stop,然后再调用他们的DeInit,这样所有的loop结束的...
Definition: EuvLoop.hpp:65
bool isQuiting()
获取loop是否处于退出状态 当Stop函数被调用后,可能loop无法立刻捕获并执行此事件 如果此时待执行的其他事件较多,可能会引起loop无法及时退出 其他事件的回调可以使用此函数判断当loop处于退...
Definition: EuvLoop.hpp:95
void DeInit()
去初始化loop,此函数会阻塞至所有描述符关闭并退出loop
uv_loop_t * GetLoop()
获取libuv中的loop句柄
Definition: EuvLoop.hpp:80
ErrCodeE Start(bool newThread=true)
开始loop循环,执行此函数之后loop就真正的运行起来了
bool IsRunning()
loop当前是否处于运行状态
Definition: EuvLoop.hpp:52
ErrCodeE Init(const char *name, Callback onQuit, ModeE mode=Dynamic)
初始化一个loop
ModeE
初始化模式
Definition: EuvLoop.hpp:25
@ Default
默认loop模式,此模式下会使用libuv为每个进程提供的一个静态loop作为EuvLoop,当一个进程只需要一个loop的时候可使用这个模式
Definition: EuvLoop.hpp:26
@ Dynamic
动态loop模式,此模式下会动态的malloc一个loop
Definition: EuvLoop.hpp:27
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10