diff options
author | Angelo Corsaro <angelo@icorsaro.net> | 2000-11-20 02:15:14 +0000 |
---|---|---|
committer | Angelo Corsaro <angelo@icorsaro.net> | 2000-11-20 02:15:14 +0000 |
commit | b3b56f54df7a000e6f1e25ed2ea883e4bc188082 (patch) | |
tree | 64b1735a58a2ee391bc3bc321e87ce392a976d56 /TAO/tao/MessagingC.h | |
parent | 0e01dd982d864bd24dc9a8f7d9186465ca9b307f (diff) | |
download | ATCD-b3b56f54df7a000e6f1e25ed2ea883e4bc188082.tar.gz |
ChangeLogTag: Sun Nov 19 19:11:19 2000 Angelo Corsaro <corsaro@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/MessagingC.h')
-rw-r--r-- | TAO/tao/MessagingC.h | 125 |
1 files changed, 120 insertions, 5 deletions
diff --git a/TAO/tao/MessagingC.h b/TAO/tao/MessagingC.h index 24df0cbb898..d04e5356103 100644 --- a/TAO/tao/MessagingC.h +++ b/TAO/tao/MessagingC.h @@ -12,6 +12,7 @@ #include "ace/pre.h" #include "tao/orbconf.h" +#include "Remote_Object_Proxy_Impl.h" #if (TAO_HAS_CORBA_MESSAGING == 1) @@ -2515,6 +2516,12 @@ class TAO_Export QueueOrderPolicy: public virtual CORBA::Policy #if !defined (_MESSAGING_REPLYHANDLER_CH_) #define _MESSAGING_REPLYHANDLER_CH_ +// Forward Classes Declaration +class _TAO_ReplyHandler_Proxy_Impl; +class _TAO_ReplyHandler_Remote_Proxy_Impl; +class _TAO_ReplyHandler_Proxy_Broker; +class _TAO_ReplyHandler_Remote_Proxy_Broker; + class TAO_Export ReplyHandler : public virtual CORBA_Object { public: @@ -2551,17 +2558,120 @@ class TAO_Export ReplyHandler : public virtual CORBA_Object virtual const char* _interface_repository_id (void) const; + private: + _TAO_ReplyHandler_Proxy_Broker *the_TAO_ReplyHandler_Proxy_Broker_; + protected: - ReplyHandler (void); - ReplyHandler (TAO_Stub *objref, - CORBA::Boolean _tao_collocated = 0 - ); + ReplyHandler (int collocated = 0); + + protected: + virtual void setup_collocation (int collocated); + + ReplyHandler ( + TAO_Stub *objref, + CORBA::Boolean _tao_collocated = 0, + TAO_Abstract_ServantBase *servant = 0 + ); + + friend class _TAO_ReplyHandler_Remote_Proxy_Impl; + friend class _TAO_ReplyHandler_ThruPOA_Proxy_Impl; + friend class _TAO_ReplyHandler_Direct_Proxy_Impl; + virtual ~ReplyHandler (void); private: ReplyHandler (const ReplyHandler &); void operator= (const ReplyHandler &); }; + + // The Proxy Implementations are used by each interface to + // perform a call. Each different implementation encapsulate + // an invocation logics. + + + /////////////////////////////////////////////////////////////////////// + // Base Impl. Declaration + // + + class TAO_Export _TAO_ReplyHandler_Proxy_Impl : public virtual TAO_Object_Proxy_Impl + { + public: + virtual ~_TAO_ReplyHandler_Proxy_Impl (void); + + }; + + // + // Base Proxy Impl. Declaration + /////////////////////////////////////////////////////////////////////// + + + /////////////////////////////////////////////////////////////////////// + // Remote Impl. Declaration + // + + class TAO_Export _TAO_ReplyHandler_Remote_Proxy_Impl : + public virtual _TAO_ReplyHandler_Proxy_Impl, + public virtual TAO_Remote_Object_Proxy_Impl + { + public: + virtual ~_TAO_ReplyHandler_Remote_Proxy_Impl (void); + + }; + + // + // Base Proxy Impl. Declaration + /////////////////////////////////////////////////////////////////////// + + /////////////////////////////////////////////////////////////////////// + // Base Proxy Broker Declaration + // + + class TAO_Export _TAO_ReplyHandler_Proxy_Broker + { + public: + virtual ~_TAO_ReplyHandler_Proxy_Broker (void); + + virtual _TAO_ReplyHandler_Proxy_Impl &select_proxy ( + ReplyHandler *object, + CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () + ) = 0; + + }; + + + // + // End Base Proxy Broker Declaration + /////////////////////////////////////////////////////////////////////// + + + /////////////////////////////////////////////////////////////////////// + // Remote Proxy Broker Declaration + // + + class TAO_Export _TAO_ReplyHandler_Remote_Proxy_Broker : public virtual _TAO_ReplyHandler_Proxy_Broker + { + public: + virtual ~_TAO_ReplyHandler_Remote_Proxy_Broker (void); + + virtual _TAO_ReplyHandler_Proxy_Impl &select_proxy ( + ReplyHandler *object, + CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () + ); + + private: + _TAO_ReplyHandler_Remote_Proxy_Impl remote_proxy_impl_; + }; + + // This funxtion is used to get an handle to the unique instance + // of the Remote Proxy Broker that is available for a given + // interface. + + _TAO_ReplyHandler_Remote_Proxy_Broker *the_TAO_ReplyHandler_Remote_Proxy_Broker (void); + + // + // End Remote Proxy Broker Declaration + /////////////////////////////////////////////////////////////////////// + #if (TAO_HAS_SMART_PROXIES == 1) class TAO_Export TAO_Messaging_ReplyHandler_Default_Proxy_Factory { @@ -2576,7 +2686,8 @@ class TAO_Export TAO_Messaging_ReplyHandler_Default_Proxy_Factory CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ); - }; +}; + class TAO_Export TAO_Messaging_ReplyHandler_Proxy_Factory_Adapter { @@ -2744,6 +2855,10 @@ TAO_Export CORBA::Boolean operator>>= (const CORBA::Any &, const Messaging::Poli #if (TAO_HAS_AMI_CALLBACK == 1) +extern TAO_Export Messaging::_TAO_ReplyHandler_Proxy_Broker * (*Messaging__TAO_ReplyHandler_Proxy_Broker_Factory_function_pointer) ( + CORBA::Object_ptr obj + ); + extern TAO_Export Messaging::ReplyHandler_ptr (*_TAO_collocation_Messaging_ReplyHandler_Stub_Factory_function_pointer) ( CORBA::Object_ptr obj ); |