1 // This is a simple test of an ImR using the corba interfaces
3 #include "service_configC.h"
5 #include <ace/streams.h>
6 #include <ace/SString.h>
7 #include <ace/Log_Msg.h>
12 ACE_TString directive
;
15 ACE_DEBUG((LM_DEBUG
, "Usage: controller [-r | -c \"service_configurator_directive\"]\n"
16 "(e.g. dynamic mysvc Service_Object * MySvc:_make_MySvc() \"-arg1 one\"\n\n"));
19 bool parse_args (int argc
, ACE_TCHAR
*argv
[]) {
20 if (argc
!= 2 && argc
!= 3) {
21 ACE_ERROR((LM_ERROR
, "Controller: wrong number of arguments. %d\n", argc
- 1));
24 for (int i
= 1; i
< argc
; ++i
) {
25 ACE_TString
s (argv
[i
]);
26 if (s
== ACE_TEXT ("-h") || s
== ACE_TEXT ("-help") || s
== ACE_TEXT ("--help") || s
== ACE_TEXT ("-?"))
28 if (s
== ACE_TEXT ("-r")) {
31 if (s
== ACE_TEXT ("-c") && ++i
< argc
) {
40 int ACE_TMAIN (int argc
, ACE_TCHAR
*argv
[]) {
42 ORB_var orb
= ORB_init (argc
, argv
);
44 if (! parse_args (argc
, argv
)) {
49 ACE_DEBUG((LM_DEBUG
, "Controller: Connecting to combined service...\n"));
51 Object_var obj
= orb
->resolve_initial_references("ServiceConfig");
52 ServiceConfigurator_var sc
= ServiceConfigurator::_narrow(obj
.in());
53 ACE_ASSERT(! is_nil(sc
.in()));
55 if (directive
.length() > 0) {
56 ACE_DEBUG((LM_DEBUG
, "Controller: sending directive <%s>...\n", directive
.c_str()));
57 sc
->process_directive (ACE_TEXT_ALWAYS_CHAR (directive
.c_str()));
59 ACE_DEBUG((LM_DEBUG
, "Controller: reloading config file...\n"));
62 ACE_DEBUG((LM_DEBUG
, "Controller: done.\n"));
65 } catch (const CORBA::Exception
& e
) {
66 e
._tao_print_exception ("Controller:");