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.

Spec defined methods

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".

virtual const char * _interface_repository_id (void) const
virtual CORBA::ULong _hash (CORBA::ULong maximum ACE_ENV_ARG_DECL_WITH_DEFAULTS)
virtual CORBA::Boolean _is_equivalent (CORBA::Object_ptr other_obj ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw ()
virtual CORBA::Boolean _non_existent (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
 Determine if we are of the type specified by the "logical_type_id".

virtual CORBA::ImplementationDef_ptr _get_implementation (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
virtual InterfaceDef_ptr _get_interface (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
 Get info about the object from the Interface Repository.

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

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)
 Determine if we are of the type specified by the "logical_type_id".

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)
 Determine if we are of the type specified by the "logical_type_id".

virtual CORBA::Request_ptr _request (const char *operation ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 DII operation to create a request.

CORBA::Policy_ptr _get_policy (CORBA::PolicyType type ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Determine if we are of the type specified by the "logical_type_id".

CORBA::Object_ptr _set_policy_overrides (const CORBA::PolicyList &policies, CORBA::SetOverrideType set_add ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Determine if we are of the type specified by the "logical_type_id".

CORBA::PolicyList_get_policy_overrides (const CORBA::PolicyTypeSeq &types ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Determine if we are of the type specified by the "logical_type_id".

CORBA::Boolean _validate_connection (CORBA::PolicyList_out inconsistent_policies ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Determine if we are of the type specified by the "logical_type_id".

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

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

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.


Methods that are TAO specific.

These methods are defined here as helper functions to be used by other parts of TAO. Theoretically they shold all start with tao_. But we have deviated from that principle.

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

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

virtual TAO::ObjectKey_key (ACE_ENV_SINGLE_ARG_DECL)
CORBA::Policy_ptr _get_client_policy (CORBA::PolicyType type ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Object (TAO_Stub *p, CORBA::Boolean collocated=0, TAO_Abstract_ServantBase *servant=0, TAO_ORB_Core *orb_core=0)
 Constructor.

 Object (IOP::IOR *ior, TAO_ORB_Core *orb_core=0)
virtual TAO_Stub_stubobj (void) const
 Get the underlying stub object.

virtual TAO_Stub_stubobj (void)
virtual void _proxy_broker (TAO::Object_Proxy_Broker *proxy_broker)
 Set the proxy broker.

virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr)
 Allows us to forbid marshaling of local interfaces.

CORBA::Boolean is_evaluated (void) const
 Accessor to the flag..

void set_collocated_servant (TAO_Abstract_ServantBase *)
 Mutator for setting the servant in collocated cases.

TAO_ORB_Coreorb_core (void) const
 Accessor for the ORB_Core..

IOP::IORsteal_ior (void)
 Accessors for the underlying IOP::IOR's.

const IOP::IORior (void) const
End of CORBA specific methods
CORBA::Boolean 
marshal (Object_ptr obj, TAO_OutputCDR &strm)
void _tao_any_destructor (void *)
 Used in the implementation of CORBA::Any.

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

void tao_object_initialize (Object *)
 Helper function for reading contents of an IOR.


Public Types

typedef Object_ptr _ptr_type
typedef Object_var _var_type

Public Methods

virtual ~Object (void)
 Destructor.

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

virtual void _add_ref (void)
 Increment the reference count.

virtual void _remove_ref (void)
 Decrement the reference count.


Protected Methods

 Object (int dummy=0)
 Initializing a local object.


Protected Attributes

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


Private Methods

 Object (const Object &)
Object & operator= (const Object &)

Private Attributes

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

TAO::Object_Proxy_Brokerproxy_broker_
 Pointer to the Proxy Broker.

Boolean is_evaluated_
 Flag to indicate whether the IOP::IOR has been evaluated fully.

IOP::IOR_var ior_
TAO_ORB_Coreorb_core_
 Cached pointer of our ORB_Core.

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

ACE_Lockrefcount_lock_
 Protect reference count manipulation from race conditions.


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 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::Current, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

typedef 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::Current, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.


Constructor & Destructor Documentation

CORBA::Object::~Object void    [virtual]
 

Destructor.

CORBA::Object::Object TAO_Stub   p,
CORBA::Boolean    collocated = 0,
TAO_Abstract_ServantBase   servant = 0,
TAO_ORB_Core   orb_core = 0
 

Constructor.

CORBA::Object::Object IOP::IOR   ior,
TAO_ORB_Core   orb_core = 0
 

This constructor should not be called when the protocol proxy is null ie. when the object is a LocalObject. Assert that requirement.

ACE_INLINE CORBA::Object::Object int    dummy = 0 [protected]
 

Initializing a local object.

CORBA::Object::Object const 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    exclist,
CORBA::ContextList_ptr    ctxtlist,
CORBA::Request_ptr   request,
CORBA::Flags req_flags    ACE_ENV_ARG_DECL_WITH_DEFAULTS
[virtual]
 

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

Reimplemented in CORBA::LocalObject.

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_WITH_DEFAULTS
[virtual]
 

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

Reimplemented in CORBA::LocalObject.

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 type    ACE_ENV_ARG_DECL_WITH_DEFAULTS
 

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 type    ACE_ENV_ARG_DECL_WITH_DEFAULTS
 

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

Reimplemented in CORBA::LocalObject.

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

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

Reimplemented in CORBA::LocalObject.

CORBA::ULong CORBA::Object::_hash CORBA::ULong maximum    ACE_ENV_ARG_DECL_WITH_DEFAULTS [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::Current, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, 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?

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.

Reimplemented in CORBA::LocalObject.

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

Is this a local object?

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 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.

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::Current, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

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::Current, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

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

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

Reimplemented in CORBA::LocalObject.

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_WITH_DEFAULTS [virtual]
 

DII operation to create a request.

Reimplemented in CORBA::LocalObject.

TAO_Abstract_ServantBase * CORBA::Object::_servant void    const [virtual]
 

CORBA::Object_ptr CORBA::Object::_set_policy_overrides const CORBA::PolicyList   policies,
CORBA::SetOverrideType set_add    ACE_ENV_ARG_DECL_WITH_DEFAULTS
 

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

Reimplemented in CORBA::LocalObject.

TAO_Stub * CORBA::Object::_stubobj void    [virtual]
 

ACE_INLINE TAO_Stub * CORBA::Object::_stubobj void    const [virtual]
 

Get the underlying stub object.

void CORBA::Object::_tao_any_destructor void   [static]
 

Used in the implementation of CORBA::Any.

Reimplemented in CORBA::Current, CORBA::DomainManager, CORBA::ConstructionPolicy, IOP::Codec, IOP::CodecFactory, CORBA::Policy, CORBA::PolicyManager, CORBA::PolicyCurrent, PortableInterceptor::Interceptor, PortableInterceptor::Current, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

CORBA::Boolean CORBA::Object::_validate_connection CORBA::PolicyList_out inconsistent_policies    ACE_ENV_ARG_DECL_WITH_DEFAULTS
 

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

Reimplemented in CORBA::LocalObject.

ACE_INLINE const IOP::IOR & CORBA::Object::ior void    const
 

ACE_INLINE CORBA::Boolean CORBA::Object::is_evaluated void    const
 

Accessor to the flag..

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

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

ACE_INLINE CORBA::Boolean CORBA::Object::marshal TAO_OutputCDR   cdr [virtual]
 

Allows us to forbid marshaling of local interfaces.

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::Current, PortableInterceptor::RequestInfo, PortableInterceptor::ClientRequestInfo, PortableInterceptor::ServerRequestInfo, PortableInterceptor::ClientRequestInterceptor, PortableInterceptor::ServerRequestInterceptor, PortableInterceptor::PolicyFactory, PortableInterceptor::ORBInitInfo, PortableInterceptor::ORBInitializer, and TAO::BufferingConstraintPolicy.

CORBA::Boolean CORBA::Object::marshal Object_ptr    obj,
TAO_OutputCDR   strm
[static]
 

Marshalling operator used by the stub code. A long story why the stub code uses this, let us keep it short here.

Object& CORBA::Object::operator= const Object &    [private]
 

ACE_INLINE TAO_ORB_Core * CORBA::Object::orb_core void    const
 

Accessor for the ORB_Core..

Reimplemented in TAO_ORBInitInfo.

ACE_INLINE void CORBA::Object::set_collocated_servant TAO_Abstract_ServantBase  
 

Mutator for setting the servant in collocated cases.

This is used by the Object_Adapter to set the servant for collocated cases and only when the object is initialized. The object initialization takes place when IOR's are lazily evaluated.

ACE_INLINE IOP::IOR * CORBA::Object::steal_ior void   
 

Accessors for the underlying IOP::IOR's.

The steal_ior () call basically relinquishes the ownership of the IOR. This is useful for cases when one wants to initialize a new CORBA Object

void CORBA::Object::tao_object_initialize Object *    [static]
 

Helper function for reading contents of an IOR.


Member Data Documentation

IOP::IOR_var CORBA::Object::ior_ [private]
 

If the IOR hasnt been evaluated fully, then the contents of the IOR that we received should be in here!

CORBA::Boolean CORBA::Object::is_collocated_ [private]
 

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

Boolean CORBA::Object::is_evaluated_ [private]
 

Flag to indicate whether the IOP::IOR has been evaluated fully.

CORBA::Boolean CORBA::Object::is_local_ [private]
 

Specify whether this is a local object or not.

TAO_ORB_Core* CORBA::Object::orb_core_ [private]
 

Cached pointer of our ORB_Core.

Reimplemented in TAO_CDR_Encaps_Codec, TAO_CodecFactory, TAO_ORBInitInfo, and TAO_PICurrent.

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 Objects

TAO::Object_Proxy_Broker* CORBA::Object::proxy_broker_ [private]
 

Pointer to the Proxy Broker.

This cached pointer instance takes care of routing the call for standard calls in CORBA::Object like _is_a (), _get_component () etc.

CORBA::ULong CORBA::Object::refcount_ [private]
 

Number of outstanding references to this object.

Reimplemented in TAO_Local_RefCounted_Object.

ACE_Lock* CORBA::Object::refcount_lock_ [private]
 

Protect reference count manipulation from race conditions.

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.

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 Wed Jan 14 23:34:34 2004 for TAO by doxygen1.2.18