summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h')
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h b/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h
new file mode 100644
index 00000000000..2871c38e56b
--- /dev/null
+++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#ifndef TAO_IMR_ACTIVATOR_LOADER_H
+#define TAO_IMR_ACTIVATOR_LOADER_H
+
+#include "ImR_Activator_i.h"
+#include "Activator_Options.h"
+
+#include "tao/Object_Loader.h"
+
+#include "ace/Auto_Ptr.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class ImR_Activator_ORB_Runner;
+
+class Activator_Export ImR_Activator_Loader : public TAO_Object_Loader
+{
+public:
+ ImR_Activator_Loader(void);
+
+ virtual int init (int argc, ACE_TCHAR *argv[] ACE_ENV_ARG_DECL);
+
+ virtual int fini (void);
+
+ virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[]
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Unlike other service objects, we have our own orb.
+ int run(void);
+
+private:
+ ImR_Activator_i service_;
+ Activator_Options opts_;
+ ACE_Auto_Ptr<ImR_Activator_ORB_Runner> runner_;
+
+private:
+ // Disallow copying and assignment.
+ ImR_Activator_Loader (const ImR_Activator_Loader &);
+ ImR_Activator_Loader &operator = (const ImR_Activator_Loader &);
+};
+
+ACE_FACTORY_DECLARE (Activator, ImR_Activator_Loader)
+
+#endif