|
AceSmartSoft API Documentation
|
Decorator for QueryServerHandler to defer handling to another thread. More...
#include <smartProcessingPatterns.hh>
Public Types | |
| using | IQueryServerHandlerPtr = std::shared_ptr< Smart::IQueryServerHandler< RequestType, AnswerType > > |
Public Member Functions | |
| virtual int | start () override |
| Creates and starts a new thread (if not yet started) More... | |
| virtual int | stop (const bool wait_till_stopped=true) override |
| Closes currently active thread (if it was started before) More... | |
| ThreadQueueQueryHandler (Smart::IComponent *component, IQueryServerHandlerPtr inner_handler_ptr) | |
| Create a new threaded QueryServerHandler Decorator. More... | |
| virtual | ~ThreadQueueQueryHandler () |
Public Member Functions inherited from SmartACE::Task | |
| Task (Smart::IComponent *component=0) | |
| Constructor. More... | |
| virtual | ~Task () |
| Destructor. More... | |
| virtual int | start (const ACE_Sched_Params &sched_params, const int &cpuAffinity=-1) |
| control method to start the internal thread using given scheduling parameters More... | |
Additional Inherited Members | |
Protected Member Functions inherited from SmartACE::Task | |
| virtual bool | test_canceled () |
| Tests whether the thread has been signaled to stop. More... | |
| virtual void | sleep_for (const Smart::Duration &rel_time) |
| Blocks execution of the calling thread during the span of time specified by rel_time. More... | |
| virtual int | svc (void) |
| implements ACE_Task<ACE_MT_SYNCH> More... | |
| int | setCpuAffinity (const int &cpuCore) |
| int | setSchedParams (const ACE_Sched_Params &sched_params) |
Decorator for QueryServerHandler to defer handling to another thread.
This Decorator (see Design Patterns by Gamma et. al) can be used if a QueryServerHandler is slow and/or blocking and would therefore block the framework. This handler is an active object and has a single thread, in which the Queries are handled one after another.
example usage:
| using SmartACE::ThreadQueueQueryHandler< RequestType, AnswerType >::IQueryServerHandlerPtr = std::shared_ptr<Smart::IQueryServerHandler<RequestType,AnswerType> > |
|
inline |
Create a new threaded QueryServerHandler Decorator.
The internal handling thread is started/stopped automatically.
| component | the pointer to the surrounding component |
| inner_handler_ptr | which will be called in a separate thread. |
|
inlinevirtual |
|
inlineoverridevirtual |
Creates and starts a new thread (if not yet started)
Reimplemented from SmartACE::Task.
|
inlineoverridevirtual |
Closes currently active thread (if it was started before)
Reimplemented from SmartACE::Task.
1.8.13