summaryrefslogtreecommitdiff
path: root/ace/Module.h
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-29 16:35:51 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-29 16:35:51 +0000
commitfaa2f09fd8f413cf5aae237a360fbe5cb79ee75f (patch)
tree8373f810c9a0b47986b292e9d4b356981aab2d3f /ace/Module.h
parent6876af88f48f3d7fd6ae8c749df5259645cf34ff (diff)
downloadATCD-faa2f09fd8f413cf5aae237a360fbe5cb79ee75f.tar.gz
ChangeLogTag:Thu Jan 29 10:32:28 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'ace/Module.h')
-rw-r--r--ace/Module.h30
1 files changed, 21 insertions, 9 deletions
diff --git a/ace/Module.h b/ace/Module.h
index f0a667e6d4f..119f57560aa 100644
--- a/ace/Module.h
+++ b/ace/Module.h
@@ -23,18 +23,15 @@
// Forward decl.
// template <ACE_SYNCH_DECL> class ACE_Task;
-template <ACE_SYNCH_DECL>
-class ACE_Module
+struct ACE_Export ACE_Module_Base
{
// = TITLE
- // An abstraction for managing a bi-directional flow of messages.
- //
+ // Workaround HP/C++ compiler bug with enums in templates.
+ //
// = 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
+ // 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.
enum
{
@@ -54,6 +51,21 @@ public:
// 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.