- #pragma once
- #pragma managed(push,off)
- typedef ACE_Future<int> IntFuture;
- class ACEDotNetDemoTask :
- public ACE_Task_Base
- {
- ACE_Activation_Queue
- activation_queue_;
- public:
- ACEDotNetDemoTask(void);
- ~ACEDotNetDemoTask(void);
- virtual int svc (void);
- int enqueue (ACE_Method_Request *request);
- IntFuture call_exit();
- };
- typedef ACE_Singleton<ACEDotNetDemoTask, ACE_Null_Mutex>
- ACEDOTNETDEMOTASK;
- class ExitMethodRequest :
- public ACE_Method_Request
- {
- IntFuture result_;
- public:
- ExitMethodRequest(IntFuture& result)
- : result_(result)
- {
- ACE_TRACE ("ExitMethodRequest::ExitMethodRequest");
- }
- ~ExitMethodRequest( )
- {
- ACE_TRACE ("ExitMethodRequest::~ExitMethodRequest");
- }
- // Sets the value of the IntFuture to -1, and
- // returns -1 causing the svc method to exit.
- virtual int call (void)
- {
- ACE_TRACE ("ExitMethodRequest::call");
- int result = -1;
- result_.set(result);
- return result;
- }
- };
- #pragma managed(pop)
- //该片段来自于http://www.codesnippet.cn/detail/150320132417.html
来源: http://www.codesnippet.cn/detail/150320132417.html