实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
#include "EuvLoop.hpp"
◆ Callback
◆ ModeE
| 枚举值 |
|---|
| Default | 默认loop模式,此模式下会使用libuv为每个进程提供的一个静态loop作为EuvLoop,当一个进程只需要一个loop的时候可使用这个模式
|
| Dynamic | 动态loop模式,此模式下会动态的malloc一个loop
|
◆ EuvLoop()
| Emx::EuvLoop::EuvLoop |
( |
| ) |
|
◆ Init()
- 参数
-
| name | [in] 为这个loop起个响当当的名字,也就是配置loop所依附的线程名字 |
| onQuit | [in] 当执行Stop或者StopAndDeInit时会触发此回调函数, 在此回调中应关闭所有未关闭的绑定到此loop的描述符,否则循环将一直阻塞无法退出 |
| mode | [in] 使用loop的方式,默认为动态模式 |
- 返回
- ErrCodeE
◆ Start()
| ErrCodeE Emx::EuvLoop::Start |
( |
bool |
newThread = true | ) |
|
- 参数
-
| newThread | [in] 当此标识为true时会创建一个新的线程来跑loop,此函数不会被阻塞 否则的话就使用当前线程来跑loop,此函数会被阻塞在这里, 当一个进程只需要一个loop的时候可以使用newThread=false的方式 |
- 返回
- ErrCodeE
◆ IsRunning()
| bool Emx::EuvLoop::IsRunning |
( |
| ) |
|
|
inline |
◆ Stop()
| void Emx::EuvLoop::Stop |
( |
| ) |
|
◆ DeInit()
| void Emx::EuvLoop::DeInit |
( |
| ) |
|
◆ StopAndDeInit()
| void Emx::EuvLoop::StopAndDeInit |
( |
| ) |
|
|
inline |
◆ GetName()
| const char* Emx::EuvLoop::GetName |
( |
| ) |
|
|
inline |
◆ GetLoop()
| uv_loop_t* Emx::EuvLoop::GetLoop |
( |
| ) |
|
|
inline |
◆ PrintAllHandles()
| void Emx::EuvLoop::PrintAllHandles |
( |
| ) |
|
|
inline |
◆ PrintActiveHandles()
| void Emx::EuvLoop::PrintActiveHandles |
( |
| ) |
|
|
inline |
◆ isQuiting()
| bool Emx::EuvLoop::isQuiting |
( |
| ) |
|
|
inline |