#include <ace/Module.h>
template<ACE_SYNCH_DECL> class ACE_Module : public ACE_Module_Base {
public:
friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning;
ACE_Module (void);
~ACE_Module (void);
ACE_Module ( const ASYS_TCHAR *module_name, ACE_Task<ACE_SYNCH_USE> *writer = 0, ACE_Task<ACE_SYNCH_USE> *reader = 0, void *args = 0, int flags = M_DELETE );
int open ( const ASYS_TCHAR *module_name, ACE_Task<ACE_SYNCH_USE> *writer = 0, ACE_Task<ACE_SYNCH_USE> *reader = 0, void *a = 0, int flags = M_DELETE );
int close (int flags = M_DELETE_NONE);
ACE_Task<ACE_SYNCH_USE> *writer (void);
void writer ( ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_WRITER );
ACE_Task<ACE_SYNCH_USE> *reader (void);
void reader ( ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_READER );
ACE_Task<ACE_SYNCH_USE> *sibling (ACE_Task<ACE_SYNCH_USE> *orig);
const ASYS_TCHAR *name (void) const;
void name (const ASYS_TCHAR *);
void *arg (void) const;
void arg (void *);
void link (ACE_Module<ACE_SYNCH_USE> *m);
ACE_Module<ACE_SYNCH_USE> *next (void);
void next (ACE_Module<ACE_SYNCH_USE> *m);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
int close_i (int which, int flags);
ACE_Task<ACE_SYNCH_USE> *q_pair_[2];
ASYS_TCHAR name_[MAXNAMLEN + 1];
ACE_Module<ACE_SYNCH_USE> *next_;
void *arg_;
int flags_;
};
ACE_Task
.
ACE_Module (void);
~ACE_Module (void);
ACE_Module (
const ASYS_TCHAR *module_name,
ACE_Task<ACE_SYNCH_USE> *writer = 0,
ACE_Task<ACE_SYNCH_USE> *reader = 0,
void *args = 0,
int flags = M_DELETE
);
module_name
as its identity
and reader
and writer
as its tasks.
int open (
const ASYS_TCHAR *module_name,
ACE_Task<ACE_SYNCH_USE> *writer = 0,
ACE_Task<ACE_SYNCH_USE> *reader = 0,
void *a = 0,
int flags = M_DELETE
);
module_name
as its identity
and reader
and writer
as its tasks. Previously register
reader or writers or closed down and deleted according to the
value of flags_. Should not be called from within
ACE_Task::module_closed
.
int close (int flags = M_DELETE_NONE);
flags
values in calls to c'tor, open
, reader
, and writer
.
A previous value M_DELETE[_XXX] can not be overridden. Should
not be called from within ACE_Task::module_closed
.
ACE_Task<ACE_SYNCH_USE> *writer (void);
void writer (ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_WRITER);
flags
can be used to indicate that the
module should delete the writer during a call to close or to the
destructor. If a previous writer exists, it is closed. It may
also be deleted, depending on the old flags_ value. Should not
be called from within ACE_Task::module_closed
.
ACE_Task<ACE_SYNCH_USE> *reader (void);
void reader (ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_READER);
flags
can be used to indicate that the
module should delete the reader during a call to close or to the
destructor. If a previous reader exists, it is closed. It may
also be deleted, depending on the old flags_ value. Should not
be called from within ACE_Task::module_closed
.
ACE_Task<ACE_SYNCH_USE> *sibling (ACE_Task<ACE_SYNCH_USE> *orig);
ACE_Task
in an ACE_Module
const ASYS_TCHAR *name (void) const;
void name (const ASYS_TCHAR *);
void *arg (void) const;
void arg (void *);
void link (ACE_Module<ACE_SYNCH_USE> *m);
ACE_Module<ACE_SYNCH_USE> *next (void);
void next (ACE_Module<ACE_SYNCH_USE> *m);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;