diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:21 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:21 +0000 |
commit | 3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c (patch) | |
tree | 197c810e5f5bce17b1233a7cb8d7b50c0bcd25e2 /TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h | |
parent | 6b846cf03c0bcbd8c276cb0af61a181e5f98eaae (diff) | |
download | ATCD-3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c.tar.gz |
Repo restructuring
Diffstat (limited to 'TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h')
-rw-r--r-- | TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h new file mode 100644 index 00000000000..cb19700492a --- /dev/null +++ b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h @@ -0,0 +1,124 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file ObjectReferenceTemplate_i.h + * + * $Id$ + * + * This is the implementation of the + * PortableInterceptor::ObjectReferenceTemplate ValueType. + * + * @author Johnny Willemsen <jwillemsen@remedy.nl> + */ +//============================================================================= + +#ifndef TAO_OBJECT_REFERENCE_TEMPLATE_I_H +#define TAO_OBJECT_REFERENCE_TEMPLATE_I_H + +#include /**/ "ace/pre.h" + +#include "tao/ObjRefTemplate/ort_export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/ObjRefTemplate/Default_ORTC.h" +#include "tao/SystemException.h" + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace PortableServer +{ + class POA; + + typedef POA *POA_ptr; + typedef TAO_Objref_Var_T<POA> POA_var; +} + +namespace TAO +{ + /** + * @class ObjectReferenceTemplate + * + * @brief Implementation of the PortableInterceptor::ObjectReferenceTemplate + * interface. This is a default implementation created to be returned + * by the IORInfo when the user requests the ORT or ORF. + */ + class ObjectReferenceTemplate + : public virtual OBV_TAO_Default_ORT::ObjectReferenceTemplate, + public virtual CORBA::DefaultValueRefCountBase + { + public: + /// Constructor + ObjectReferenceTemplate (const char *server_id, + const char *orb_id, + PortableInterceptor::AdapterName *adapter_name, + PortableServer::POA_ptr poa); + + /** + * @name PortableInterceptor::ObjectReferenceTemplate Methods + * + * Methods required by the + * PortableInterceptor::ObjectReferenceTemplate ValueType. + */ + //@{ + virtual char * server_id (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char * orb_id (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual PortableInterceptor::AdapterName * adapter_name ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + //@} + + /** + * @name PortableInterceptor::ObjectReferenceFactory Methods + * + * Methods required by the + * PortableInterceptor::ObjectReferenceFactory ValueType. + */ + //@{ + virtual CORBA::Object_ptr make_object ( + const char * repository_id, + const PortableInterceptor::ObjectId & id + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + //@} + + protected: + + /// Destructor + /** + * Protected destructor to enforce proper memory management via + * reference counting. + */ + ~ObjectReferenceTemplate (void); + + private: + const char *server_id_; + const char *orb_id_; + PortableInterceptor::AdapterName_var adapter_name_; + PortableServer::POA_var poa_; + }; +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#include /**/ "ace/post.h" + +#endif /* TAO_OBJECT_REFERENCE_TEMPLATE_I_H */ |