summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/LWFT/ObjectReferenceFactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LWFT/ObjectReferenceFactory.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/LWFT/ObjectReferenceFactory.h66
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 */