diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LWFT/ObjectReferenceFactory.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/LWFT/ObjectReferenceFactory.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LWFT/ObjectReferenceFactory.h b/TAO/orbsvcs/orbsvcs/LWFT/ObjectReferenceFactory.h new file mode 100644 index 00000000000..8c527b74507 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/LWFT/ObjectReferenceFactory.h @@ -0,0 +1,66 @@ +// -*- C++ -*- +// $Id$ + +#ifndef TAO_OBJECT_REFERENCE_FACTORY_H +#define TAO_OBJECT_REFERENCE_FACTORY_H + +#include "ObjectReferenceFactoryC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +class ObjectReferenceFactory + : public virtual OBV_lwft::ObjectReferenceFactory + , public virtual CORBA::DefaultValueRefCountBase +{ + public: + + /// Constructor + ObjectReferenceFactory ( + PortableInterceptor::ObjectReferenceFactory * old_orf); + + /** + * @name PortableInterceptor::ObjectReferenceFactory Methods + * + * Methods required by the + * PortableInterceptor::ObjectReferenceFactory interface. + */ + //@{ + virtual CORBA::Object_ptr make_object ( + const char *repository_id, + const PortableInterceptor::ObjectId & id); + //@} + +protected: + + /// Destructor + /** + * Protected destructor to enforce proper memory management via + * reference counting. + */ + ~ObjectReferenceFactory (void); + +private: + + /// The old ObjectReferenceFactory used to create object references. + /** + * This ObjectReferenceFactory will still be used when creating + * object references. However, it will be invoked through this + * ObjectReferenceFactory. + */ + PortableInterceptor::ObjectReferenceFactory_var old_orf_; + +}; + + +#if defined (_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#endif /* TAO_OBJECT_REFERENCE_FACTORY_H */ |