diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:11 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:11 +0000 |
commit | 6b846cf03c0bcbd8c276cb0af61a181e5f98eaae (patch) | |
tree | da50d054f9c761c3f6a5923f6979e93306c56d68 /TAO/tao/LocalObject.h | |
parent | 0e555b9150d38e3b3473ba325b56db2642e6352b (diff) | |
download | ATCD-6b846cf03c0bcbd8c276cb0af61a181e5f98eaae.tar.gz |
Repo restructuring
Diffstat (limited to 'TAO/tao/LocalObject.h')
-rw-r--r-- | TAO/tao/LocalObject.h | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/TAO/tao/LocalObject.h b/TAO/tao/LocalObject.h deleted file mode 100644 index d60a0be6a27..00000000000 --- a/TAO/tao/LocalObject.h +++ /dev/null @@ -1,268 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file LocalObject.h - * - * $Id$ - * - * Header file for CORBA's base "LocalObject" type. - * - * A "LocalObject" is an entity that can be the target of a local - * invocation. See the CORBA Component Model specification for - * details. - * - * @author Nanbor Wang <nanbor@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_CORBA_LOCALOBJECT_H -#define TAO_CORBA_LOCALOBJECT_H - -#include /**/ "ace/pre.h" - -#include "ace/Thread_Mutex.h" -#include "ace/Atomic_Op.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/Object.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace CORBA -{ - class LocalObject; - typedef LocalObject *LocalObject_ptr; - typedef TAO_Pseudo_Var_T<LocalObject> LocalObject_var; - typedef TAO_Pseudo_Out_T<LocalObject> LocalObject_out; - - /** - * @class LocalObject - */ - class TAO_Export LocalObject : public virtual CORBA::Object - { - public: - - /// Destructor - virtual ~LocalObject (void); - - /// Increment the ref count - static LocalObject_ptr _duplicate (LocalObject_ptr obj); - - /// Return a NIL object - static LocalObject_ptr _nil (void); - - /** - * @todo Narrowing a LocalObject to a CORBA::Object is broken - * right now. The solution seems to be making CORBA::Object an - * abstract base class and create a CORBA::RemoteObject for - * regular object. Or, even easier, add a @c is_local member into - * CORBA::Object. I'll take the easier route for now. - */ - static LocalObject_ptr _narrow (CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS); - -#if (TAO_HAS_MINIMUM_CORBA == 0) - - /// Always returns false. - virtual CORBA::Boolean _non_existent ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ); - - /// Throws CORBA::NO_IMPLEMENT. - virtual CORBA::ImplementationDef_ptr _get_implementation ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ); - - /// Gets info about object from the Interface Repository. - virtual CORBA::InterfaceDef_ptr _get_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ); - - /// Throws NO_IMPLEMENT. - virtual CORBA::Object_ptr _get_component ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ); - - /// Get the repository id. - virtual char * _repository_id ( - ACE_ENV_SINGLE_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::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); - - /// Throws NO_IMPLEMENT. - virtual CORBA::Request_ptr _request (const char * operation - ACE_ENV_ARG_DECL_WITH_DEFAULTS); - -#endif /* TAO_HAS_MINIMUM_CORBA */ - -#if (TAO_HAS_CORBA_MESSAGING == 1) - - /// Throws CORBA::NO_IMPLEMENT. - CORBA::Policy_ptr _get_policy (CORBA::PolicyType type - ACE_ENV_ARG_DECL_WITH_DEFAULTS); - - /// Throws CORBA::NO_IMPLEMENT. - CORBA::Policy_ptr _get_cached_policy (TAO_Cached_Policy_Type type - ACE_ENV_ARG_DECL_WITH_DEFAULTS); - - /// Throws CORBA::NO_IMPLEMENT. - CORBA::Object_ptr _set_policy_overrides ( - const CORBA::PolicyList & policies, - CORBA::SetOverrideType set_add - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - /// Throws CORBA::NO_IMPLEMENT. - CORBA::PolicyList * _get_policy_overrides ( - const CORBA::PolicyTypeSeq & types - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - /// Throws CORBA::NO_IMPLEMENT. - CORBA::Boolean _validate_connection ( - CORBA::PolicyList_out inconsistent_policies - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - -#endif /* TAO_HAS_CORBA_MESSAGING == 1 */ - - /** - * Return a hash value for this object. The hash is based on the - * address of the object. On non-32 bit platforms, the hash may - * be non-unique. - */ - virtual CORBA::ULong _hash (CORBA::ULong maximum - ACE_ENV_ARG_DECL_WITH_DEFAULTS); - - /** - * Try to determine if this object is the same as @c 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. - */ - virtual CORBA::Boolean _is_equivalent (CORBA::Object_ptr other_obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC (()); - - // = Reference count managment. - /// Increment the reference count. - virtual void _add_ref (void); - - /// Decrement the reference count. - virtual void _remove_ref (void); - - virtual CORBA::ORB_ptr _get_orb ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ); - - // = TAO extensions - - /// Throws CORBA::NO_IMPLEMENT. - virtual TAO::ObjectKey * _key (ACE_ENV_SINGLE_ARG_DECL); - - /// Useful for template programming. - typedef LocalObject_ptr _ptr_type; - typedef LocalObject_var _var_type; - typedef LocalObject_out _out_type; - - protected: - - /// Default constructor. - /** - * Make it protected to prevent instantiation of this class. - */ - LocalObject (void); - - private: - - /** - * @name Unimplemented methods - */ - //@{ - LocalObject (const LocalObject &); - LocalObject & operator = (const LocalObject &); - //@} - - }; -} // End CORBA namespace - -/** - * @class TAO_Local_RefCounted_Object - * - * @brief This class adds default reference counting to local - * objects. - * - * This is proprietary convenience class that implements reference - * counting in locality constrained objects. - */ -class TAO_Export TAO_Local_RefCounted_Object - : public virtual CORBA::LocalObject -{ -public: - - /// Destructor. - virtual ~TAO_Local_RefCounted_Object (void); - - /// Increment reference count. - virtual void _add_ref (void); - - /// Decrement reference count. - virtual void _remove_ref (void); - -protected: - - // Default constructor. - /** - * Make it protected to prevent instantiation of this class. - */ - TAO_Local_RefCounted_Object (void); - -private: - - /** - * @name Unimplemented methods - */ - //@{ - TAO_Local_RefCounted_Object (const TAO_Local_RefCounted_Object &); - TAO_Local_RefCounted_Object & operator = ( - const TAO_Local_RefCounted_Object & - ); - //@} - -protected: - /// Reference counter. - ACE_Atomic_Op<TAO_SYNCH_MUTEX, unsigned long> refcount_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -# include "tao/LocalObject.i" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CORBA_LOCALOBJECT_H */ |