summaryrefslogtreecommitdiff
path: root/TAO/DevGuideExamples/ValueTypes/Bank/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/DevGuideExamples/ValueTypes/Bank/client.cpp')
-rw-r--r--TAO/DevGuideExamples/ValueTypes/Bank/client.cpp40
1 files changed, 34 insertions, 6 deletions
diff --git a/TAO/DevGuideExamples/ValueTypes/Bank/client.cpp b/TAO/DevGuideExamples/ValueTypes/Bank/client.cpp
index b1c6b50bc7a..9004be236a5 100644
--- a/TAO/DevGuideExamples/ValueTypes/Bank/client.cpp
+++ b/TAO/DevGuideExamples/ValueTypes/Bank/client.cpp
@@ -6,7 +6,35 @@
#include <iostream>
#include <stdexcept>
+#include "ace/Get_Opt.h"
+const ACE_TCHAR *ior = ACE_TEXT ("file://server.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-k <ior> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates successful parsing of the command line
+ return 0;
+}
// Note : We use a completely different implementation
// of the Person valuetype for the client side, just to
@@ -28,16 +56,16 @@ private:
}
};
-const char* server_ior = "file://server.ior";
-
-
-int ACE_TMAIN (int ac, ACE_TCHAR* av[]) {
+int ACE_TMAIN (int argc, ACE_TCHAR* argv[]) {
try {
- CORBA::ORB_var orb = CORBA::ORB_init(ac, av);
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
- CORBA::Object_var obj = orb->string_to_object(server_ior);
+ CORBA::Object_var obj = orb->string_to_object(ior);
Transaction_var trans = Transaction::_narrow(obj.in());
if (CORBA::is_nil(trans.in()))
throw std::runtime_error("failed to find a valid Transaction IOR");