diff options
author | bala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-10-28 18:31:01 +0000 |
---|---|---|
committer | bala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-10-28 18:31:01 +0000 |
commit | cdb6fd66611283a0314ab23e08472d11dae4f0e4 (patch) | |
tree | fd6ae8c3db752254802dfaafd1543974a4741e47 /TAO/tao/Abstract_Servant_Base.h | |
parent | f984aa2bff444f381570d2f97ac9ba958926fb6b (diff) | |
download | ATCD-cdb6fd66611283a0314ab23e08472d11dae4f0e4.tar.gz |
ChangeLogTag:Tue Oct 28 12:02:47 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
Diffstat (limited to 'TAO/tao/Abstract_Servant_Base.h')
-rw-r--r-- | TAO/tao/Abstract_Servant_Base.h | 75 |
1 files changed, 54 insertions, 21 deletions
diff --git a/TAO/tao/Abstract_Servant_Base.h b/TAO/tao/Abstract_Servant_Base.h index 98869326963..2f5b3599c26 100644 --- a/TAO/tao/Abstract_Servant_Base.h +++ b/TAO/tao/Abstract_Servant_Base.h @@ -15,22 +15,43 @@ */ //============================================================================= - #ifndef TAO_ABSTRACT_SERVANT_BASE_H_ #define TAO_ABSTRACT_SERVANT_BASE_H_ #include /**/ "ace/pre.h" -#include "tao/corbafwd.h" +#include "ace/CORBA_macros.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/CORBA_macros.h" +#include "tao/TAO_Export.h" +#include "tao/Basic_Types.h" +#include "tao/Collocation_Strategy.h" +#include "tao/Pseudo_VarOut_T.h" class TAO_ServerRequest; class TAO_Stub; +class TAO_Abstract_ServantBase; + +namespace CORBA +{ + class InterfaceDef; + typedef InterfaceDef *InterfaceDef_ptr; + + class Environment; + + class Object; + typedef Object *Object_ptr; + typedef TAO_Pseudo_Var_T<Object> Object_var; + typedef TAO_Pseudo_Out_T<Object, Object_var> Object_out; +}; + +namespace TAO +{ + class Argument; +}; typedef void (*TAO_Skeleton)( TAO_ServerRequest &, @@ -41,11 +62,14 @@ typedef void (*TAO_Skeleton)( #endif ); -namespace CORBA -{ - class InterfaceDef; - typedef InterfaceDef *InterfaceDef_ptr; -}; +typedef void (*TAO_Collocated_Skeleton)( + TAO_Abstract_ServantBase *, + TAO::Argument **, + int +#if !defined (TAO_HAS_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT) + , CORBA::Environment & +#endif + ); class TAO_Export TAO_Abstract_ServantBase { @@ -55,20 +79,20 @@ public: /// Local implementation of the CORBA::Object::_is_a method. virtual CORBA::Boolean _is_a (const char* logical_type_id - ACE_ENV_ARG_DECL_WITH_DEFAULTS) = 0; + ACE_ENV_ARG_DECL) = 0; /// Default <_non_existent>: always returns false. virtual CORBA::Boolean _non_existent ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) = 0; + ACE_ENV_SINGLE_ARG_DECL) = 0; /// Query the Interface Repository. virtual CORBA::InterfaceDef_ptr _get_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ACE_ENV_SINGLE_ARG_DECL ) = 0; /// Default <_get_component>: always returns nil. virtual CORBA::Object_ptr _get_component ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) = 0; + ACE_ENV_SINGLE_ARG_DECL) = 0; //@{ /** @@ -76,8 +100,8 @@ public: * * Reference counting hooks are no-ops by default. */ - virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); - virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL); + virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL); //@} /// Get the correct vtable. @@ -86,6 +110,20 @@ public: /// This is an auxiliary method for _this() and _narrow(). virtual TAO_Stub *_create_stub (ACE_ENV_SINGLE_ARG_DECL) = 0; + /// Find an operation in the operation table and return a + /// TAO_Skeleton which can be used to make upcalls + virtual int _find (const char *opname, + TAO_Skeleton &skelfunc, + const unsigned int length = 0) = 0; + + /// Find an operation in the operation table and return a + /// TAO_Collocated_Skeleton which can be used to make upcalls onto + /// collocated servants. + virtual int _find (const char *opname, + TAO_Collocated_Skeleton &skelfunc, + TAO::Collocation_Strategy s, + const unsigned int length = 0) = 0; + protected: /// Default constructor, only derived classes can be created. @@ -113,15 +151,10 @@ protected: void *derived_this ACE_ENV_ARG_DECL) = 0; - /// Find an operation in the operation table. - virtual int _find (const char *opname, - TAO_Skeleton &skelfunc, - const unsigned int length = 0) = 0; - /// Register a CORBA IDL operation name. - virtual int _bind (const char *opname, + /*virtual int _bind (const char *opname, const TAO_Skeleton skel_ptr) = 0; - + */ /// Get this interface's repository id (TAO specific). virtual const char *_interface_repository_id (void) const = 0; |