diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-27 08:04:56 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-27 08:04:56 +0000 |
commit | 0eb6e480428997deebc6d23b88dd725605157b18 (patch) | |
tree | b1b0af12058c4e0300dbdb551ea3aa9f012c4048 /TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h | |
parent | a4ebe078c7a14983348b939c02e5fa15ec6bc9b3 (diff) | |
download | ATCD-0eb6e480428997deebc6d23b88dd725605157b18.tar.gz |
ChangeLogTag: Fri Aug 27 08:04:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h')
-rw-r--r-- | TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h | 117 |
1 files changed, 117 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..776e7e95d06 --- /dev/null +++ b/TAO/tao/ObjRefTemplate/ObjectReferenceTemplate_i.h @@ -0,0 +1,117 @@ +// -*- 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 "Default_ORTC.h" +#include "tao/PortableServer/PortableServerC.h" + +#if defined(_MSC_VER) +#if (_MSC_VER >= 1200) +#pragma warning(push) +#endif /* _MSC_VER >= 1200 */ +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +namespace TAO +{ + /** + * @class TAO_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 TAO_ORT_Export 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_; + }; +} +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#if defined (__ACE_INLINE__) +# include "ObjectReferenceTemplate_i.inl" +#endif /* ! __ACE_INLINE__ */ + +#include /**/ "ace/post.h" + +#endif /* TAO_OBJECT_REFERENCE_TEMPLATE_I_H */ |