summaryrefslogtreecommitdiff
path: root/CIAO/ciao/FTComponentServer/Configurator_Factory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/ciao/FTComponentServer/Configurator_Factory.cpp')
-rw-r--r--CIAO/ciao/FTComponentServer/Configurator_Factory.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/CIAO/ciao/FTComponentServer/Configurator_Factory.cpp b/CIAO/ciao/FTComponentServer/Configurator_Factory.cpp
new file mode 100644
index 00000000000..2db7cec6ef3
--- /dev/null
+++ b/CIAO/ciao/FTComponentServer/Configurator_Factory.cpp
@@ -0,0 +1,49 @@
+#include "Configurator_Factory.h"
+// $Id$
+#include "ace/Arg_Shifter.h"
+#include "ciao/CIAO_common.h"
+#include "Configurators/Server_Configurator.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ ComponentServer_Configurator *
+ Configurator_Factory::operator() (int &argc, ACE_TCHAR **argv)
+ {
+ CIAO_TRACE ("Configurator_Factory::operator()");
+ bool const rt = this->parse_args (argc, argv);
+
+ ComponentServer_Configurator *ptr = 0;
+ ACE_NEW_THROW_EX (ptr,
+ ComponentServer_Configurator (rt),
+ CORBA::NO_MEMORY (TAO::VMCID,
+ CORBA::COMPLETED_NO));
+
+ return ptr;
+ }
+
+ bool
+ Configurator_Factory::parse_args (int &argc, ACE_TCHAR **argv)
+ {
+ CIAO_TRACE ("Configurator_Factory::parse_args");
+ ACE_Arg_Shifter shifter (argc, argv);
+ bool retval = false;
+
+ while (shifter.is_anything_left ())
+ {
+ if (shifter.cur_arg_strncasecmp (ACE_TEXT("-r")) == 0)
+ {
+ retval = true;
+ shifter.consume_arg ();
+ }
+ else
+ {
+ shifter.ignore_arg ();
+ }
+ }
+
+ return retval;
+ }
+ }
+}