boost::asio序列2:execution_context

execution_context是Boost.ASIO中io_context的基类,它定义了服务(services)的管理方式,包括服务的添加、检查和使用。execution_context提供了一个类型安全的服务集合,用于管理跨上下文共享的资源。services可以是如定时器队列等共享资源的实现。通过use_service()、add_service()和has_service()方法,可以访问和管理这些服务。当执行上下文析构时,会调用shutdown()和destroy()确保资源正确释放。io_context是execution_context的具体实现之一。
摘要由CSDN通过智能技术生成
class io_context
  : public execution_context

execution_context是io_context的基类,表示函数对象执行的上下文。

execution_context代表函数对象执行的位置。

execution_context和services

(1) execution_context实现一个可拓展的,类型安全的,services多态集合,通过service type 索引。 

(2) services 用于管理用于跨execution_context共享的资源。例如,timers可能的通过单个timer队列实现,该队列被保存在一个service中

通过模板函数use_service(), add_service(), has_service()访问exection_context对象的services

调用use_service<Service>(),类型参数Service用于选择service使得全部的成员变得可使用。 如果service在execution_context中不存在,则类型为Service的对象将被创建并且加入到exection_context中。通过has<service<Service>()检查exection_context是否实现对应的Service。

Service对象可以通过显示调用模板函数add_service<Service>()添加到exection_context中。如果Service已经存在则抛出service_already_exists异常。如果service的拥有者和exection_context参数不是相同的对象则抛出invalid_service_owner异常。

通过调用user_service<>()获取exec

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值