diff options
author | maximius <none@none> | 2009-10-17 15:51:44 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-17 15:51:44 -0700 |
commit | e585187b248f48b3c6e9247b49fa07c6565d65e5 (patch) | |
tree | 637c5b7ddacf41040bef4ea4f75a97da64c6a9bc /dep/ACE_wrappers/ace/Module.h | |
parent | 26b5e033ffde3d161382fc9addbfa99738379641 (diff) |
*Backed out changeset 3be01fb200a5
--HG--
branch : trunk
Diffstat (limited to 'dep/ACE_wrappers/ace/Module.h')
-rw-r--r-- | dep/ACE_wrappers/ace/Module.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/dep/ACE_wrappers/ace/Module.h b/dep/ACE_wrappers/ace/Module.h index ae912762db3..e749b6365cd 100644 --- a/dep/ACE_wrappers/ace/Module.h +++ b/dep/ACE_wrappers/ace/Module.h @@ -1,4 +1,5 @@ // -*- C++ -*- + //========================================================================== /** * @file Module.h @@ -8,16 +9,23 @@ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> */ //========================================================================== + #ifndef ACE_MODULE_H #define ACE_MODULE_H + #include /**/ "ace/pre.h" + #include /**/ "ace/ACE_export.h" + #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ + #include "ace/Task_T.h" #include "ace/os_include/os_dirent.h" + ACE_BEGIN_VERSIONED_NAMESPACE_DECL + /** * @class ACE_Module_Base * @@ -34,10 +42,13 @@ public: { /// Indicates that the flags have not been set M_FLAGS_NOT_SET = 0, + /// Indicates that <close> should delete the writer Task. M_DELETE_READER = 1, + /// Indicates that <close> should delete the reader Task. M_DELETE_WRITER = 2, + /// Indicates that <close> deletes the Tasks. /** * Don't change this value without updating the same enum in class @@ -46,10 +57,12 @@ public: * together. */ M_DELETE = 3, + /// Indicates that <close> should not delete any Tasks. M_DELETE_NONE = 4 }; }; + /** * @class ACE_Module * @@ -68,8 +81,10 @@ public: // = Initialization and termination methods. /// Create an empty Module. ACE_Module (void); + /// Shutdown the Module. virtual ~ACE_Module (void); + /// Create an initialized module with @a module_name as its identity /// and @a reader and @a writer as its tasks. ACE_Module (const ACE_TCHAR *module_name, @@ -77,6 +92,7 @@ public: ACE_Task<ACE_SYNCH_USE> *reader = 0, void *args = 0, int flags = M_DELETE); + /** * Initialize the module with <module_name> as its identity * and <reader> and <writer> as its tasks. Previously register @@ -89,6 +105,7 @@ public: ACE_Task<ACE_SYNCH_USE> *reader = 0, void *a = 0, int flags = M_DELETE); + /** * Close down the module and its tasks. The flags argument can be * used to override the default behaviour, which depends on previous @@ -97,9 +114,11 @@ public: * not be called from within <ACE_Task::module_closed>. */ int close (int flags = M_DELETE_NONE); + // = ACE_Task manipulation routines /// Get the writer task. ACE_Task<ACE_SYNCH_USE> *writer (void); + /** * Set the writer task. @a flags can be used to indicate that the * module should delete the writer during a call to close or to the @@ -108,8 +127,10 @@ public: * be called from within <ACE_Task::module_closed>. */ void writer (ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_WRITER); + /// Get the reader task. ACE_Task<ACE_SYNCH_USE> *reader (void); + /** * Set the reader task. @a flags can be used to indicate that the * module should delete the reader during a call to close or to the @@ -118,56 +139,78 @@ public: * be called from within <ACE_Task::module_closed>. */ void reader (ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_READER); + /// Set and get pointer to sibling ACE_Task in an ACE_Module ACE_Task<ACE_SYNCH_USE> *sibling (ACE_Task<ACE_SYNCH_USE> *orig); + // = Identify the module /// Get the module name. const ACE_TCHAR *name (void) const; + /// Set the module name. void name (const ACE_TCHAR *); + // = Argument to the Tasks. /// Get the argument passed to the tasks. void *arg (void) const; + /// Set the argument passed to the tasks. void arg (void *); + /// Link to other modules in the ustream stack void link (ACE_Module<ACE_SYNCH_USE> *m); + /// Get the next pointer to the module above in the stream. ACE_Module<ACE_SYNCH_USE> *next (void); + /// Set the next pointer to the module above in the stream. void next (ACE_Module<ACE_SYNCH_USE> *m); + /// Dump the state of an object. void dump (void) const; + /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; + private: /// Implements the close operation for either the reader or the /// writer task (depending on <which>). int close_i (int which, int flags); + /// Pair of Tasks that form the "read-side" and "write-side" of the /// ACE_Module partitioning. ACE_Task<ACE_SYNCH_USE> *q_pair_[2]; + /// Name of the ACE_Module. ACE_TCHAR name_[MAXPATHLEN + 1]; + /// Next ACE_Module in the stack. ACE_Module<ACE_SYNCH_USE> *next_; + /// Argument passed through to the reader and writer task when they /// are opened. void *arg_; + /// Holds flags which are used to determine if the reader and writer /// task have to be deleted on exit int flags_; }; + ACE_END_VERSIONED_NAMESPACE_DECL + #if defined (__ACE_INLINE__) #include "ace/Module.inl" #endif /* __ACE_INLINE__ */ + #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) #include "ace/Module.cpp" #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ + #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) #pragma implementation ("Module.cpp") #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ + #include /**/ "ace/post.h" + #endif /* ACE_MODULE_H */ |