Primary interface for application message processing, as well as input and output message queueing.
More...
|
| ACE_Task_Ex (ACE_Thread_Manager *thr_mgr=0, MESSAGE_QUEUE_EX *mq=0) |
|
virtual | ~ACE_Task_Ex (void) |
| Destructor.
|
|
MESSAGE_QUEUE_EX * | msg_queue (void) |
| Gets the message queue associated with this task.
|
|
void | msg_queue (MESSAGE_QUEUE_EX *) |
| Sets the message queue associated with this task.
|
|
int | putq (ACE_MESSAGE_TYPE *, ACE_Time_Value *timeout=0) |
|
int | getq (ACE_MESSAGE_TYPE *&mb, ACE_Time_Value *timeout=0) |
|
int | ungetq (ACE_MESSAGE_TYPE *, ACE_Time_Value *timeout=0) |
|
int | reply (ACE_MESSAGE_TYPE *, ACE_Time_Value *timeout=0) |
|
int | put_next (ACE_MESSAGE_TYPE *msg, ACE_Time_Value *timeout=0) |
|
const ACE_TCHAR * | name (void) const |
|
ACE_Task< ACE_SYNCH_USE,
TIME_POLICY > * | next (void) |
| Get next Task pointer.
|
|
void | next (ACE_Task< ACE_SYNCH_USE, TIME_POLICY > *) |
| Set next Task pointer.
|
|
ACE_Task< ACE_SYNCH_USE,
TIME_POLICY > * | sibling (void) |
| Alwasy return 0.
|
|
ACE_Module< ACE_SYNCH_USE,
TIME_POLICY > * | module (void) const |
| Return the Task's Module if there is one, else returns 0.
|
|
int | flush (u_long flag=ACE_Task_Flags::ACE_FLUSHALL) |
|
void | water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds, size_t) |
| Manipulate watermarks.
|
|
void | dump (void) const |
| Dump the state of an object.
|
|
| ACE_Task_Base (ACE_Thread_Manager *=0) |
| Constructor.
|
|
virtual | ~ACE_Task_Base (void) |
| Destructor.
|
|
virtual int | open (void *args=0) |
| Default ACE_Task open routine.
|
|
virtual int | close (u_long flags=0) |
| Default ACE_Task close routine.
|
|
virtual int | module_closed (void) |
|
virtual int | put (ACE_Message_Block *, ACE_Time_Value *=0) |
| Default ACE_Task put routine.
|
|
virtual int | svc (void) |
| Run by a daemon thread to handle deferred processing.
|
|
virtual int | activate (long flags=THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, int n_threads=1, int force_active=0, long priority=ACE_DEFAULT_THREAD_PRIORITY, int grp_id=-1, ACE_Task_Base *task=0, ACE_hthread_t thread_handles[]=0, void *stack[]=0, size_t stack_size[]=0, ACE_thread_t thread_ids[]=0, const char *thr_name[]=0) |
|
virtual int | wait (void) |
| Wait for all threads running in a task to exit.
|
|
virtual int | suspend (void) |
| Suspend a task.
|
|
virtual int | resume (void) |
| Resume a suspended task.
|
|
int | grp_id (void) const |
| Get the current group id.
|
|
void | grp_id (int) |
| Set the current group id.
|
|
ACE_Thread_Manager * | thr_mgr (void) const |
| Get the thread manager associated with this Task.
|
|
void | thr_mgr (ACE_Thread_Manager *) |
| Set the thread manager associated with this Task.
|
|
int | is_reader (void) const |
| True if queue is a reader, else false.
|
|
int | is_writer (void) const |
| True if queue is a writer, else false.
|
|
size_t | thr_count (void) const |
|
ACE_thread_t | last_thread (void) const |
|
| ACE_Service_Object (ACE_Reactor *=0) |
| Constructor.
|
|
virtual | ~ACE_Service_Object (void) |
| Destructor.
|
|
virtual | ~ACE_Event_Handler (void) |
| Destructor is virtual to enable proper cleanup.
|
|
virtual ACE_HANDLE | get_handle (void) const |
| Get the I/O handle.
|
|
virtual void | set_handle (ACE_HANDLE) |
| Set the I/O handle.
|
|
virtual int | priority (void) const |
|
virtual void | priority (int priority) |
| Set the priority of the Event_Handler.
|
|
virtual int | handle_input (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
| Called when input events occur (e.g., connection or data).
|
|
virtual int | handle_output (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
|
virtual int | handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
| Called when an exceptional events occur (e.g., SIGURG).
|
|
virtual int | handle_timeout (const ACE_Time_Value ¤t_time, const void *act=0) |
|
virtual int | handle_exit (ACE_Process *) |
| Called when a process exits.
|
|
virtual int | handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask) |
|
virtual int | handle_signal (int signum, siginfo_t *=0, ucontext_t *=0) |
|
virtual int | resume_handler (void) |
|
virtual int | handle_qos (ACE_HANDLE=ACE_INVALID_HANDLE) |
|
virtual int | handle_group_qos (ACE_HANDLE=ACE_INVALID_HANDLE) |
|
virtual void | reactor (ACE_Reactor *reactor) |
| Set the event demultiplexors.
|
|
virtual ACE_Reactor * | reactor (void) const |
| Get the event demultiplexors.
|
|
virtual
ACE_Reactor_Timer_Interface * | reactor_timer_interface (void) const |
| Get only the reactor's timer related interface.
|
|
virtual Reference_Count | add_reference (void) |
| Increment reference count on the handler.
|
|
virtual Reference_Count | remove_reference (void) |
| Decrement reference count on the handler.
|
|
Reference_Counting_Policy & | reference_counting_policy (void) |
| Current Reference_Counting_Policy.
|
|
| ACE_Shared_Object (void) |
| Constructor.
|
|
virtual | ~ACE_Shared_Object (void) |
| Destructor.
|
|
virtual int | init (int argc, ACE_TCHAR *argv[]) |
| Initializes object when dynamic linking occurs.
|
|
virtual int | fini (void) |
| Terminates object when dynamic unlinking occurs.
|
|
virtual int | info (ACE_TCHAR **info_string, size_t length=0) const |
| Returns information on a service object.
|
|
template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Task_Ex< ACE_SYNCH_DECL, ACE_MESSAGE_TYPE, TIME_POLICY >
Primary interface for application message processing, as well as input and output message queueing.
Unlike ACE_Task, these class doesn't have the ability to be a part of a Stream chain. I.e. You cannot (yet) chain modules based on ACE_Task_Ex.
- Todo:
- : We can merge ACE_Task and ACE_Task_Ex to be one class. something like that: template <ACE_SYNCH_DECL, ACE_MESSAGE_TYPE = ACE_Message_Block> class ACE_Task : public ACE_Task_Base { // use here the code from ACE_Task_Ex using ACE_Message_Queue_Ex };
Now specialized version of ACE_Task with ACE_Message_Block as its ACE_MESSAGE_TYPE...
template <ACE_SYNCH_DECL> class ACE_Task <ACE_SYNCH_USE, ACE_Message_Block> : public ACE_Task_Base { // put here the good old ACE_Task code };
When User (and legacy code) write ACE_Task<ACE_MT_SYNCH>, specialized ACE_Task code is in action.