加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main_service.h 891 Bytes
一键复制 编辑 原始数据 按行查看 历史
gavingqf 提交于 2024-03-30 10:35 . update
#pragma once
/*
* global main service class.
*/
#include <map>
#include "anet.hpp"
#include "asio.hpp"
#include "asio/detail/noncopyable.hpp"
namespace anet {
namespace tcp {
// CMainService is main service, it is a global instance to run in a unique thread.
class CMainService final : asio::noncopyable {
public:
CMainService();
virtual ~CMainService();
typedef std::unique_ptr<asio::io_context> ioContextPtr;
typedef std::unique_ptr<asio::io_context::work> workPtr;
public:
// global instance
static CMainService& instance();
// post function to asio service to execute.
void post(std::function<void()> func);
// run asio service with counters where busy return true, else return false.
bool run(int count);
private:
// io_context and its worker.
ioContextPtr m_service{ nullptr };
workPtr m_work{ nullptr };
};
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化