欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > ACE之ACE_Activation_Queue

ACE之ACE_Activation_Queue

2025/6/29 7:52:20 来源:https://blog.csdn.net/wuli2496/article/details/144866983  浏览:    关键词:ACE之ACE_Activation_Queue

简介

异步请求队列,用于发起异步请求,请求在Task框架中执行。由ACE_Activation_QueueACE_Method_Request构成

结构

ACE_Activation_Queue
# ACE_Message_Queue<ACE_SYNCH> *queue_
# bool delete_queue_
- ACE_Allocator *allocator_
- ACE_Allocator *data_block_allocator_
ACE_Method_Request
# unsigned long priority_
-virtual int call(void)

ACE_Activation_Queue allocator_负责分配队列,data_block_allocator_负责分配队列中的数据块
ACE_Method_Request:其中call为纯虚函数,priority_用来表示消息的优先级

virtual int call (void) = 0;

应用

主要用在Task框架中

class Scheduler : public ACE_Task_Base
{
public:Scheduler (){ACE_TRACE ("Scheduler::Scheduler");this->activate ();}virtual int svc (void){ACE_TRACE ("Scheduler::svc");while (1){// Dequeue the next method objectauto_ptr<ACE_Method_Request>request (this->activation_queue_.dequeue ());// Invoke the method request.if (request->call () == -1)break;}return 0;}int enqueue (ACE_Method_Request *request){ACE_TRACE ("Scheduler::enqueue");return this->activation_queue_.enqueue (request);}private:ACE_Activation_Queue activation_queue_;
};class StatusUpdate : public ACE_Method_Request
{
public:StatusUpdate (HA_ControllerAgent& controller,ACE_Future<int>& returnVal): controller_(controller), returnVal_(returnVal){ACE_TRACE ("StatusUpdate::StatusUpdate");}virtual int call (void){ACE_TRACE ("StatusUpdate::call");// status_update with the controller.this->returnVal_.set (this->controller_.status_update ());return 0;}private:HA_ControllerAgent& controller_;ACE_Future<int> returnVal_;
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词