#include <ace/Task_T.h>
template<ACE_SYNCH_DECL> class ACE_Task : public ACE_Task_Base {
public:
friend class ACE_Module<ACE_SYNCH_USE>;
friend class ACE_Module_Type;
ACE_Task ( ACE_Thread_Manager *thr_mgr = 0, ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0 );
virtual ~ACE_Task (void);
ACE_Message_Queue<ACE_SYNCH_USE> *msg_queue (void);
void msg_queue (ACE_Message_Queue<ACE_SYNCH_USE> *);
int putq (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
int getq (ACE_Message_Block *&mb, ACE_Time_Value *timeout = 0);
int ungetq (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
int reply (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
int put_next ( ACE_Message_Block *msg, ACE_Time_Value *timeout = 0 );
int can_put (ACE_Message_Block *);
const ASYS_TCHAR *name (void) const;
ACE_Task<ACE_SYNCH_USE> *next (void);
void next (ACE_Task<ACE_SYNCH_USE> *);
ACE_Task<ACE_SYNCH_USE> *sibling (void);
ACE_Module<ACE_SYNCH_USE> *module (void) const;
int flush (u_long flag = ACE_Task_Flags::ACE_FLUSHALL);
void water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds, size_t);
ACE_Message_Queue<ACE_SYNCH_USE> *msg_queue_;
int delete_msg_queue_;
ACE_Module<ACE_SYNCH_USE> *mod_;
ACE_Task<ACE_SYNCH_USE> *next_;
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
inline ACE_UNIMPLEMENTED_FUNC ( void operator= (const ACE_Task<ACE_SYNCH_USE> &) );
};
ACE_Task (
ACE_Thread_Manager *thr_mgr = 0,
ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0
);
virtual ~ACE_Task (void);
ACE_Message_Queue<ACE_SYNCH_USE> *msg_queue (void);
void msg_queue (ACE_Message_Queue<ACE_SYNCH_USE> *);
timeout
== 0, the caller will
block until action is possible, else will wait until the
absolute time specified in *timeout
elapses). These calls
will return, however, when queue is closed, deactivated, when a
signal occurs, or if the time specified in timeout elapses, (in
which case errno = EWOULDBLOCK).
int putq (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
timeout
uses
absolute time rather than relative time.
int getq (ACE_Message_Block *&mb, ACE_Time_Value *timeout = 0);
timeout
uses absolute time rather than relative time.
int ungetq (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
timeout
uses
absolute time rather than relative time.
int reply (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
timeout
uses absolute time rather than relative
time.
int put_next (ACE_Message_Block *msg, ACE_Time_Value *timeout = 0);
timeout
uses absolute time rather than relative
time.
int can_put (ACE_Message_Block *);
const ASYS_TCHAR *name (void) const;
ACE_Task<ACE_SYNCH_USE> *next (void);
void next (ACE_Task<ACE_SYNCH_USE> *);
ACE_Task<ACE_SYNCH_USE> *sibling (void);
ACE_Module<ACE_SYNCH_USE> *module (void) const;
int flush (u_long flag = ACE_Task_Flags::ACE_FLUSHALL);
flush
function, just rewrite the iostream function as
::flush
.
void water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds, size_t);
ACE_Message_Queue<ACE_SYNCH_USE> *msg_queue_;
int delete_msg_queue_;
ACE_Module<ACE_SYNCH_USE> *mod_;
ACE_Task<ACE_SYNCH_USE> *next_;
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
inline ACE_UNIMPLEMENTED_FUNC (
void operator= (const ACE_Task<ACE_SYNCH_USE> &)
);
schmidt@cs.wustl.edu