diff options
Diffstat (limited to 'TAO/tao/LocalObject.h')
-rw-r--r-- | TAO/tao/LocalObject.h | 126 |
1 files changed, 52 insertions, 74 deletions
diff --git a/TAO/tao/LocalObject.h b/TAO/tao/LocalObject.h index b22b71d60e0..d8478839361 100644 --- a/TAO/tao/LocalObject.h +++ b/TAO/tao/LocalObject.h @@ -53,16 +53,6 @@ public: TAO_default_environment ()); // no-op it is just here to simplify some templates. - static void _tao_any_destructor (void*); - // @@ Does this stuff make sense at all in LocalObject? - // Used in the implementation of CORBA::Any - - // These calls correspond to over-the-wire operations, or at least - // do so in many common cases. The normal implementation assumes a - // particular simple, efficient, protocol-neutral interface for - // making such calls, but may be overridden when it appears - // appropriate. - virtual CORBA::Boolean _is_a (const CORBA::Char *logical_type_id, CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); @@ -72,14 +62,6 @@ public: // The repository ID for the most derived class, this is an // implementation method and does no remote invocations! - virtual TAO_ServantBase *_servant (void) const; - // return 0. - - virtual CORBA::Boolean _is_collocated (void) const; - // return 0 (even if local object is always collocated, there's no - // servant associate with the object (the object itself implement - // all operations. - #if (TAO_HAS_MINIMUM_CORBA == 0) virtual CORBA::Boolean _non_existent (CORBA_Environment &ACE_TRY_ENV = @@ -96,6 +78,34 @@ public: TAO_default_environment ()); // throws NO_IMPLEMENT. + virtual void _create_request (CORBA::Context_ptr ctx, + const CORBA::Char *operation, + CORBA::NVList_ptr arg_list, + CORBA::NamedValue_ptr result, + CORBA::Request_ptr &request, + CORBA::Flags req_flags, + CORBA_Environment &ACE_TRY_ENV = + TAO_default_environment ()); + // throws NO_IMPLEMENT. + + virtual void _create_request (CORBA::Context_ptr ctx, + const CORBA::Char *operation, + CORBA::NVList_ptr arg_list, + CORBA::NamedValue_ptr result, + CORBA::ExceptionList_ptr exclist, + CORBA::ContextList_ptr ctxtlist, + CORBA::Request_ptr &request, + CORBA::Flags req_flags, + CORBA_Environment &ACE_TRY_ENV = + TAO_default_environment ()); + + // throws NO_IMPLEMENT. + + virtual CORBA::Request_ptr _request (const CORBA::Char *operation, + CORBA_Environment &ACE_TRY_ENV = + TAO_default_environment ()); + // throws NO_IMPLEMENT. + #endif /* TAO_HAS_MINIMUM_CORBA */ #if (TAO_HAS_CORBA_MESSAGING == 1) @@ -156,75 +166,43 @@ public: // private state. Since that changes easily (when different ORB // protocols are in use) there is no default implementation. + virtual TAO_ObjectKey *_key (CORBA_Environment &ACE_TRY_ENV = + TAO_default_environment ()); + // throws NO_IMPLEMENT. + +#if 0 + virtual const TAO_ObjectKey &_object_key (void); + // Return a reference to the object key of profile in-use. + // If there's no in-use profile, then the program will + // probably crash. This method does not create a new copy. +#endif /* 0 */ + #if !defined(__GNUC__) || __GNUC__ > 2 || __GNUC_MINOR__ >= 8 - typedef CORBA_Object_ptr _ptr_type; - typedef CORBA_Object_var _var_type; + typedef CORBA::LocalObject_ptr _ptr_type; + typedef CORBA::LocalObject_var _var_type; #endif /* __GNUC__ */ // Useful for template programming. - // = TAO extensions - // = Reference count managment. - CORBA::ULong _incr_refcnt (void); + virtual void _add_ref (void); // Increment the reference count. - CORBA::ULong _decr_refcnt (void); + virtual void _remove_ref (void); // Decrement the reference count. + // = TAO extensions + protected: private: -#if (TAO_HAS_MINIMUM_CORBA==0) - virtual void _create_request (CORBA::Context_ptr ctx, - const CORBA::Char *operation, - CORBA::NVList_ptr arg_list, - CORBA::NamedValue_ptr result, - CORBA::Request_ptr &request, - CORBA::Flags req_flags, - CORBA_Environment &ACE_TRY_ENV = - TAO_default_environment ()); - - virtual void _create_request (CORBA::Context_ptr ctx, - const CORBA::Char *operation, - CORBA::NVList_ptr arg_list, - CORBA::NamedValue_ptr result, - CORBA::ExceptionList_ptr exclist, - CORBA::ContextList_ptr ctxtlist, - CORBA::Request_ptr &request, - CORBA::Flags req_flags, - CORBA_Environment &ACE_TRY_ENV = - TAO_default_environment ()); - - // The default implementation of this method uses the same simple, - // multi-protocol remote invocation interface as is assumed by the - // calls above ... that's how it can have a default implementation. - - virtual CORBA::Request_ptr _request (const CORBA::Char *operation, - CORBA_Environment &ACE_TRY_ENV = - TAO_default_environment ()); - // DII operation to create a request. - -#endif /* TAO_HAS_MINIMUM_CORBA == 0 */ - - virtual TAO_ObjectKey *_key (CORBA_Environment &ACE_TRY_ENV = - TAO_default_environment ()); - // Return the object key as an out parameter. Caller should release - // return value when finished with it. - - virtual const TAO_ObjectKey &_object_key (void); - // Return a reference to the object key of profile in-use. - // If there's no in-use profile, then the program will - // probably crash. This method does not create a new copy. - - virtual TAO_Stub *_stubobj (void) const; - // get the underlying stub object - - virtual void _use_locate_requests (CORBA::Boolean use_it); - // the the object to use a locate request for the first call to - // the object // = Unimplemented methods - CORBA_Object (const CORBA_Object &); - CORBA_Object &operator = (const CORBA_Object &); + LocalObject (TAO_Stub *p = 0, + TAO_ServantBase *servant = 0, + CORBA::Boolean collocated = 0); + // constructor + + LocalObject (const CORBA_Object &); + LocalObject &operator = (const CORBA_Object &); }; class TAO_Export CORBA::LocalObject_var |