diff options
Diffstat (limited to 'ACE/apps/JAWS3/jaws3/Concurrency_T.h')
-rw-r--r-- | ACE/apps/JAWS3/jaws3/Concurrency_T.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/ACE/apps/JAWS3/jaws3/Concurrency_T.h b/ACE/apps/JAWS3/jaws3/Concurrency_T.h new file mode 100644 index 00000000000..704da56faea --- /dev/null +++ b/ACE/apps/JAWS3/jaws3/Concurrency_T.h @@ -0,0 +1,50 @@ +/* -*- c++ -*- */ +// $Id$ + +#ifndef JAWS_CONCURRENCY_T_H +#define JAWS_CONCURRENCY_T_H + +// This gets me the ACE template defines without having to #include "ace/OS.h". +#include "ace/config-lite.h" + +class JAWS_Protocol_Handler; + +template <class CONCURRENCY_IMPL> +class JAWS_Concurrency_Bridge +// = TITLE +// The Concurrency Bridge uses the Concrete Bridge pattern. +// +// = DESCRIPTION +// The Concurrency Bridge class plays the role of Abstraction +// in the Bridge pattern. If the CONCURRENCY_IMPL is the +// base class JAWS_Concurrency_Impl, then it plays the classic +// role. If the CONCURRENCY_IMPL is one of the Concrete +// Implementors, then its role is more that of an Adapter, +// which is like Bridge, but without the polymorphism overhead. +// +{ +public: + + JAWS_Concurrency_Bridge (CONCURRENCY_IMPL *impl = 0); + + int putq (JAWS_Protocol_Handler *ph); + int getq (JAWS_Protocol_Handler *&ph); + + void shutdown (void); + +protected: + + CONCURRENCY_IMPL *impl_; + +}; + +#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) +#include "jaws3/Concurrency_T.cpp" +#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ + +#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) +#pragma implementation ("Concurrency_T.cpp") +#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ + + +#endif /* JAWS_CONCURRENCY_T_H */ |