summaryrefslogtreecommitdiff
path: root/ace/Module.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Module.h')
-rw-r--r--ace/Module.h186
1 files changed, 0 insertions, 186 deletions
diff --git a/ace/Module.h b/ace/Module.h
deleted file mode 100644
index c9f89e6f24c..00000000000
--- a/ace/Module.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Module.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (ACE_MODULE_H)
-#define ACE_MODULE_H
-
-#include "ace/ACE.h"
-#include "ace/Task_T.h"
-
-class ACE_Export ACE_Module_Base
-{
- // = TITLE
- // Workaround HP/C++ compiler bug with enums in templates.
- //
- // = DESCRIPTION
- // The ever lamest HP/C++ compiler seems to fail if enums are
- // defined inside a template, hence we have to move them into a
- // base class.
-public:
- enum
- {
- M_DELETE_NONE = 0,
- // Indicates that close() should not delete any Tasks.
-
- M_DELETE_READER = 1,
- // Indicates that close() should delete the writer Task.
-
- M_DELETE_WRITER = 2,
- // Indicates that close() should delete the reader Task.
-
- M_DELETE = 3
- // Indicates that close() deletes the Tasks. Don't change this
- // value without updating the same enum in class ACE_Stream...
- // The <M_DELETE_READER> and <M_DELETE_WRITER> flags may be or'ed
- // together.
- };
-};
-
-template <ACE_SYNCH_DECL>
-class ACE_Module : public ACE_Module_Base
-{
- // = TITLE
- // An abstraction for managing a bi-directional flow of messages.
- //
- // = DESCRIPTION
- // This is based on the Module concept in System V Streams,
- // which contains a pair of Tasks, one for handling upstream
- // processing, one for handling downstream processing.
-public:
- friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning
-
- // = Initialization and termination methods.
- ACE_Module (void);
- // Create an empty Module.
-
- ~ACE_Module (void);
- // Shutdown the Module.
-
- 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);
- // Create an initialized module with <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);
- // Create an initialized module with <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);
- // Close down the Module and its Tasks. The flags argument can be
- // used to override the default behaviour, which depends on previous
- // <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 manipulation routines
- ACE_Task<ACE_SYNCH_USE> *writer (void);
- // Get the writer task.
-
- void writer (ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_WRITER);
- // Set the writer task. <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);
- // Get the reader task.
-
- void reader (ACE_Task<ACE_SYNCH_USE> *q, int flags = M_DELETE_READER);
- // Set the reader task. <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);
- // Set and get pointer to sibling <ACE_Task> in an <ACE_Module>
-
- // = Identify the module
- const ASYS_TCHAR *name (void) const;
- // Get the module name.
- void name (const ASYS_TCHAR *);
- // Set the module name.
-
- // = Argument to the Tasks.
- void *arg (void) const;
- // Get the argument passed to the tasks.
-
- void arg (void *);
- // Set the argument passed to the tasks.
-
- void link (ACE_Module<ACE_SYNCH_USE> *m);
- // Link to other modules in the ustream stack
-
- ACE_Module<ACE_SYNCH_USE> *next (void);
- // Get the next pointer to the module above in the stream.
-
- void next (ACE_Module<ACE_SYNCH_USE> *m);
- // Set the next pointer to the module above in the stream.
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- int close_i (int which, int flags);
- // Implements the close operation for either the reader or the
- // writer task (depending on <which>).
-
- ACE_Task<ACE_SYNCH_USE> *q_pair_[2];
- // Pair of Tasks that form the "read-side" and "write-side" of the
- // ACE_Module partitioning.
-
- ASYS_TCHAR name_[MAXNAMLEN + 1];
- // Name of the ACE_Module.
-
- ACE_Module<ACE_SYNCH_USE> *next_;
- // Next ACE_Module in the stack.
-
- void *arg_;
- // Argument passed through to the reader and writer task when they
- // are opened.
-
- int flags_;
- // Holds flags which are used to determine if the reader and writer
- // task have to be deleted on exit
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Module.i"
-#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 */
-
-#endif /* ACE_MODULE_H */