Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

CORBA_Object Class Reference

Implementation of a CORBA object reference. More...

#include <Object.h>

Inheritance diagram for CORBA_Object:

Inheritance graph
[legend]
Collaboration diagram for CORBA_Object:

Collaboration graph
[legend]
List of all members.

Public Types

typedef CORBA_Object_ptr _ptr_type
typedef CORBA_Object_var _var_type

Public Methods

virtual ~CORBA_Object (void)
 Destructor. More...

virtual CORBA::Boolean _is_a (const char *logical_type_id ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Determine if we are of the type specified by the "logical_type_id". More...

virtual const char * _interface_repository_id (void) const
 The repository ID for the most derived class, this is an implementation method and does no remote invocations! More...

virtual CORBA::Boolean _is_collocated (void) const
 Is this object collocated with the servant? More...

virtual CORBA::Boolean _is_local (void) const
 Is this a local object? More...

virtual TAO_Abstract_ServantBase_servant (void) const
virtual CORBA::Boolean _non_existent (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
virtual CORBA::ImplementationDef_ptr _get_implementation (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
 This method is deprecated in the CORBA 2.2 spec, we just return 0 every time. More...

virtual CORBA_InterfaceDef_ptr _get_interface (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
 Get info about the object from the Interface Repository. More...

virtual CORBA::Object_ptr _get_component (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
 Get info about the object from the Interface Repository. More...

virtual void _create_request (CORBA::Context_ptr ctx, const char *operation, CORBA::NVList_ptr arg_list, CORBA::NamedValue_ptr result, CORBA::Request_ptr &request, CORBA::Flags req_flags ACE_ENV_ARG_DECL_WITH_DEFAULTS)
virtual void _create_request (CORBA::Context_ptr ctx, const 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 ACE_ENV_ARG_DECL_WITH_DEFAULTS)
virtual CORBA::Request_ptr _request (const char *operation ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 DII operation to create a request. More...

CORBA::Policy_ptr _get_policy (CORBA::PolicyType type ACE_ENV_ARG_DECL_WITH_DEFAULTS)
CORBA::Policy_ptr _get_client_policy (CORBA::PolicyType type ACE_ENV_ARG_DECL_WITH_DEFAULTS)
CORBA::Object_ptr _set_policy_overrides (const CORBA::PolicyList &policies, CORBA::SetOverrideType set_add ACE_ENV_ARG_DECL_WITH_DEFAULTS)
CORBA::PolicyList_get_policy_overrides (const CORBA::PolicyTypeSeq &types ACE_ENV_ARG_DECL_WITH_DEFAULTS)
CORBA::Boolean _validate_connection (CORBA::PolicyList_out inconsistent_policies ACE_ENV_ARG_DECL_WITH_DEFAULTS)
virtual CORBA::ULong _hash (CORBA::ULong maximum ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Return a (potentially non-unique) hash value for this object. More...

virtual CORBA::Boolean _is_equivalent (CORBA::Object_ptr other_obj ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw ()
 Try to determine if this object is the same as other_obj. More...

virtual TAO_ObjectKey_key (ACE_ENV_SINGLE_ARG_DECL)
 Return the object key as an out parameter. Caller should release return value when finished with it. More...

virtual const TAO_ObjectKey_object_key (void)
 Return a reference to the object key of profile in-use. More...

virtual void * _tao_QueryInterface (ptr_arith_t type)
 Downcasting this object pointer to some other derived class. This QueryInterface stuff only work for local object. More...

 CORBA_Object (TAO_Stub *p=0, CORBA::Boolean collocated=0, TAO_Abstract_ServantBase *servant=0)
 Constructor. More...

virtual TAO_Stub_stubobj (void) const
 Get the underlying stub object. More...

virtual void _proxy_broker (TAO_Object_Proxy_Broker *proxy_broker)
 Set the proxy broker. More...

virtual TAO_Object_Proxy_Broker_proxy_broker (void)
 Get the proxy broker. More...

Reference Count Managment
These are the standard CORBA object reference count manipulations methods.

virtual void _add_ref (void)
 Increment the reference count. More...

virtual void _remove_ref (void)
 Decrement the reference count. More...


Static Public Methods

CORBA::Object_ptr _duplicate (CORBA::Object_ptr obj)
 Increment the ref count. More...

CORBA::Object_ptr _nil (void)
 Return a NULL object. More...

ACE_INLINE_FOR_GNUC CORBA::Object_ptr _narrow (CORBA_Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 No-op it is just here to simplify some templates. More...

CORBA::Object_ptr _unchecked_narrow (CORBA_Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS)
void _tao_any_destructor (void *)
 Used in the implementation of CORBA::Any. More...

CORBA::Boolean is_nil_i (CORBA::Object_ptr obj)
 Uninlined part of the now-inlined CORBA::is_nil(). More...


Static Public Attributes

int _tao_class_id = 0
 Address of this variable used in _unchecked_narrow(). More...


Protected Methods

 CORBA_Object (int dummy)
 Initializing a local object. More...


Protected Attributes

CORBA::Boolean is_collocated_
 Flag to indicate collocation. It is 0 except for collocated objects. More...

TAO_Abstract_ServantBaseservant_
 Servant pointer. It is 0 except for collocated objects. More...

CORBA::Boolean is_local_
 Specify whether this is a local object or not. More...

TAO_Object_Proxy_Brokerproxy_broker_
 Pointer to the Proxy Broker i.e. the instance that takes care of getting the right proxy for performing a given call. More...


Private Methods

 CORBA_Object (const CORBA_Object &)
CORBA_Object & operator= (const CORBA_Object &)

Private Attributes

TAO_Stubprotocol_proxy_
 Pointer to the protocol-specific "object" containing important profiling information regarding this proxy. More...

CORBA::ULong refcount_
 Number of outstanding references to this object. More...

TAO_SYNCH_MUTEX * refcount_lock_
 This lock is only instantiated for unconstrained objects. More...


Detailed Description

Implementation of a CORBA object reference.

All CORBA objects, both unconstrained and locality-constrained, inherit from this class. The interface is defined in the CORBA specification and the C++ mapping.


Member Typedef Documentation

typedef CORBA_Object_ptr CORBA_Object::_ptr_type
 

Reimplemented in CORBA_Current, CORBA::DomainManager, CORBA::ConstructionPolicy, IOP::Codec, IOP::CodecFactory, CORBA_LocalObject, TAO_ORBInitInfo, CORBA::Policy, CORBA::PolicyManager, CORBA::PolicyCurrent, CORBA::Pollable, CORBA::DIIPollable, CORBA::PollableSet, PortableInterceptor::Interceptor, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::IORInfo, PortableInterceptor::IORInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

typedef CORBA_Object_var CORBA_Object::_var_type
 

Reimplemented in CORBA_Current, CORBA::DomainManager, CORBA::ConstructionPolicy, IOP::Codec, IOP::CodecFactory, CORBA_LocalObject, TAO_ORBInitInfo, CORBA::Policy, CORBA::PolicyManager, CORBA::PolicyCurrent, CORBA::Pollable, CORBA::DIIPollable, CORBA::PollableSet, PortableInterceptor::Interceptor, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::IORInfo, PortableInterceptor::IORInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.


Constructor & Destructor Documentation

CORBA_Object::~CORBA_Object void    [virtual]
 

Destructor.

CORBA_Object::CORBA_Object TAO_Stub   protocol_proxy = 0,
CORBA::Boolean    collocated = 0,
TAO_Abstract_ServantBase   servant = 0
 

Constructor.

ACE_INLINE CORBA_Object::CORBA_Object int    dummy [protected]
 

Initializing a local object.

CORBA_Object::CORBA_Object const CORBA_Object &    [private]
 


Member Function Documentation

void CORBA_Object::_add_ref void    [virtual]
 

Increment the reference count.

Reimplemented in CORBA_LocalObject, and TAO_Local_RefCounted_Object.

void CORBA_Object::_create_request CORBA::Context_ptr    ctx,
const char *    operation,
CORBA::NVList_ptr    arg_list,
CORBA::NamedValue_ptr    result,
CORBA::ExceptionList_ptr    exceptions,
CORBA::ContextList_ptr    ctxtlist,
CORBA::Request_ptr   request,
CORBA::Flags req_flags    ACE_ENV_ARG_DECL
[virtual]
 

void CORBA_Object::_create_request CORBA::Context_ptr    ctx,
const char *    operation,
CORBA::NVList_ptr    arg_list,
CORBA::NamedValue_ptr    result,
CORBA::Request_ptr   request,
CORBA::Flags req_flags    ACE_ENV_ARG_DECL
[virtual]
 

ACE_INLINE CORBA::Object_ptr CORBA_Object::_duplicate CORBA::Object_ptr    obj [static]
 

Increment the ref count.

CORBA::Policy_ptr CORBA_Object::_get_client_policy CORBA::PolicyType    ACE_ENV_ARG_DECL
 

Reimplemented in CORBA_LocalObject.

CORBA::Object_ptr CORBA_Object::_get_component ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    [virtual]
 

Get info about the object from the Interface Repository.

Reimplemented in CORBA_LocalObject.

CORBA::ImplementationDef_ptr CORBA_Object::_get_implementation ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    [virtual]
 

This method is deprecated in the CORBA 2.2 spec, we just return 0 every time.

Reimplemented in CORBA_LocalObject.

CORBA_InterfaceDef_ptr CORBA_Object::_get_interface ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    [virtual]
 

Get info about the object from the Interface Repository.

Reimplemented in CORBA_LocalObject.

CORBA::Policy_ptr CORBA_Object::_get_policy CORBA::PolicyType    ACE_ENV_ARG_DECL
 

Reimplemented in CORBA_LocalObject.

CORBA::PolicyList * CORBA_Object::_get_policy_overrides const CORBA::PolicyTypeSeq &types    ACE_ENV_ARG_DECL_WITH_DEFAULTS
 

Reimplemented in CORBA_LocalObject.

CORBA::ULong CORBA_Object::_hash CORBA::ULong maximum    ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

Return a (potentially non-unique) hash value for this object.

This method relies on the representation of the object reference's private state. Since that changes easily (when different ORB protocols are in use) there is no default implementation.

Reimplemented in CORBA_LocalObject.

const char * CORBA_Object::_interface_repository_id void    const [virtual]
 

The repository ID for the most derived class, this is an implementation method and does no remote invocations!

Reimplemented in CORBA_Current, CORBA::DomainManager, CORBA::ConstructionPolicy, IOP::Codec, IOP::CodecFactory, TAO_ORBInitInfo, CORBA::Policy, CORBA::PolicyManager, CORBA::PolicyCurrent, CORBA::Pollable, CORBA::DIIPollable, CORBA::PollableSet, PortableInterceptor::Interceptor, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::IORInfo, PortableInterceptor::IORInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

virtual CORBA::Boolean CORBA_Object::_is_a const char *logical_type_id    ACE_ENV_ARG_DECL_WITH_DEFAULTS [virtual]
 

Determine if we are of the type specified by the "logical_type_id".

CORBA::Boolean CORBA_Object::_is_collocated void    const [virtual]
 

Is this object collocated with the servant?

virtual CORBA::Boolean CORBA_Object::_is_equivalent CORBA::Object_ptr other_obj    ACE_ENV_ARG_DECL_WITH_DEFAULTS throw () [virtual]
 

Try to determine if this object is the same as other_obj.

This method relies on the representation of the object reference's private state. Since that changes easily (when different ORB protocols are in use) there is no default implementation.

CORBA::Boolean CORBA_Object::_is_local void    const [virtual]
 

Is this a local object?

virtual TAO_ObjectKey* CORBA_Object::_key ACE_ENV_SINGLE_ARG_DECL    [virtual]
 

Return the object key as an out parameter. Caller should release return value when finished with it.

Reimplemented in CORBA_LocalObject.

ACE_INLINE_FOR_GNUC CORBA::Object_ptr CORBA_Object::_narrow CORBA_Object_ptr obj    ACE_ENV_ARG_DECL_WITH_DEFAULTS [static]
 

No-op it is just here to simplify some templates.

ACE_INLINE CORBA::Object_ptr CORBA_Object::_nil void    [static]
 

Return a NULL object.

Reimplemented in CORBA_Current, CORBA::DomainManager, CORBA::ConstructionPolicy, IOP::Codec, IOP::CodecFactory, CORBA_LocalObject, TAO_ORBInitInfo, CORBA::Policy, CORBA::PolicyManager, CORBA::PolicyCurrent, CORBA::Pollable, CORBA::DIIPollable, CORBA::PollableSet, PortableInterceptor::Interceptor, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::IORInfo, PortableInterceptor::IORInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

CORBA::Boolean CORBA_Object::_non_existent ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    [virtual]
 

Reimplemented in CORBA_LocalObject.

virtual const TAO_ObjectKey& CORBA_Object::_object_key void    [virtual]
 

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_Object_Proxy_Broker* CORBA_Object::_proxy_broker void    [virtual]
 

Get the proxy broker.

virtual void CORBA_Object::_proxy_broker TAO_Object_Proxy_Broker   proxy_broker [virtual]
 

Set the proxy broker.

void CORBA_Object::_remove_ref void    [virtual]
 

Decrement the reference count.

Reimplemented in CORBA_LocalObject, and TAO_Local_RefCounted_Object.

CORBA::Request_ptr CORBA_Object::_request const char *operation    ACE_ENV_ARG_DECL [virtual]
 

DII operation to create a request.

TAO_Abstract_ServantBase * CORBA_Object::_servant void    const [virtual]
 

CORBA::Object_ptr CORBA_Object::_set_policy_overrides const CORBA::PolicyList   policies,
CORBA::SetOverrideType    ACE_ENV_ARG_DECL
 

Reimplemented in CORBA_LocalObject.

ACE_INLINE TAO_Stub * CORBA_Object::_stubobj void    const [virtual]
 

Get the underlying stub object.

void CORBA_Object::_tao_any_destructor void *    _tao_void_pointer [static]
 

Used in the implementation of CORBA::Any.

Reimplemented in CORBA::DomainManager, CORBA::ConstructionPolicy, IOP::Codec, IOP::CodecFactory, CORBA::Policy, CORBA::PolicyManager, CORBA::PolicyCurrent, and TAO::BufferingConstraintPolicy.

virtual void* CORBA_Object::_tao_QueryInterface ptr_arith_t    type [virtual]
 

Downcasting this object pointer to some other derived class. This QueryInterface stuff only work for local object.

Reimplemented in CORBA_Current, CORBA::DomainManager, CORBA::ConstructionPolicy, IOP::Codec, IOP::CodecFactory, TAO_ORBInitInfo, CORBA::Policy, CORBA::PolicyManager, CORBA::PolicyCurrent, CORBA::Pollable, CORBA::DIIPollable, CORBA::PollableSet, PortableInterceptor::Interceptor, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::IORInfo, PortableInterceptor::IORInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

CORBA::Object_ptr CORBA_Object::_unchecked_narrow CORBA_Object_ptr obj    ACE_ENV_ARG_DECL_WITH_DEFAULTS [static]
 

CORBA::Boolean CORBA_Object::_validate_connection CORBA::PolicyList_out    ACE_ENV_ARG_DECL
 

Reimplemented in CORBA_LocalObject.

CORBA::Boolean CORBA_Object::is_nil_i CORBA::Object_ptr    obj [static]
 

Uninlined part of the now-inlined CORBA::is_nil().

CORBA_Object& CORBA_Object::operator= const CORBA_Object &    [private]
 


Member Data Documentation

int CORBA_Object::_tao_class_id = 0 [static]
 

Address of this variable used in _unchecked_narrow().

Reimplemented in CORBA_Current, CORBA::DomainManager, CORBA::ConstructionPolicy, IOP::Codec, IOP::CodecFactory, CORBA::Policy, CORBA::PolicyManager, CORBA::PolicyCurrent, CORBA::Pollable, CORBA::DIIPollable, CORBA::PollableSet, PortableInterceptor::Interceptor, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::IORInfo, PortableInterceptor::IORInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

CORBA::Boolean CORBA_Object::is_collocated_ [protected]
 

Flag to indicate collocation. It is 0 except for collocated objects.

CORBA::Boolean CORBA_Object::is_local_ [protected]
 

Specify whether this is a local object or not.

TAO_Stub* CORBA_Object::protocol_proxy_ [private]
 

Pointer to the protocol-specific "object" containing important profiling information regarding this proxy.

The protocol proxy is (potentially) shared among several CORBA_Objects

TAO_Object_Proxy_Broker* CORBA_Object::proxy_broker_ [protected]
 

Pointer to the Proxy Broker i.e. the instance that takes care of getting the right proxy for performing a given call.

CORBA::ULong CORBA_Object::refcount_ [private]
 

Number of outstanding references to this object.

Reimplemented in TAO_Local_RefCounted_Object.

TAO_SYNCH_MUTEX* CORBA_Object::refcount_lock_ [private]
 

This lock is only instantiated for unconstrained objects.

The reason for this is that locality-constrained objects that do not require reference counting (the default) may be instantiated in the critical path.

Note:
This assumes that unconstrained objects will not be instantiated in the critical path.

Reimplemented in TAO_Local_RefCounted_Object.

TAO_Abstract_ServantBase* CORBA_Object::servant_ [protected]
 

Servant pointer. It is 0 except for collocated objects.


The documentation for this class was generated from the following files:
Generated on Thu Oct 10 18:21:35 2002 for TAO by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001