forked from zeroc-ice/ice-demos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Client.java
119 lines (109 loc) · 3.11 KB
/
Client.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//
import Demo.*;
public class Client
{
public static void main(String[] args)
{
int status = 0;
Ice.StringSeqHolder argsHolder = new Ice.StringSeqHolder(args);
//
// Try with resources block - communicator is automatically destroyed
// at the end of this try block
//
try(Ice.Communicator communicator = Ice.Util.initialize(argsHolder, "config.client"))
{
if(argsHolder.value.length > 0)
{
System.err.println("too many arguments");
status = 1;
}
else
{
status = run(communicator);
}
}
System.exit(status);
}
private static int run(Ice.Communicator communicator)
{
//
// First we try to connect to the object with the `hello'
// identity. If it's not registered with the registry, we
// search for an object with the ::Demo::Hello type.
//
HelloPrx hello = null;
try
{
hello = HelloPrxHelper.checkedCast(communicator.stringToProxy("hello"));
}
catch(Ice.NotRegisteredException ex)
{
IceGrid.QueryPrx query =
IceGrid.QueryPrxHelper.checkedCast(communicator.stringToProxy("DemoIceGrid/Query"));
hello = HelloPrxHelper.checkedCast(query.findObjectByType("::Demo::Hello"));
}
if(hello == null)
{
System.err.println("couldn't find a `::Demo::Hello' object");
return 1;
}
menu();
java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
String line = null;
do
{
try
{
System.out.print("==> ");
System.out.flush();
line = in.readLine();
if(line == null)
{
break;
}
if(line.equals("t"))
{
hello.sayHello();
}
else if(line.equals("s"))
{
hello.shutdown();
}
else if(line.equals("x"))
{
// Nothing to do
}
else if(line.equals("?"))
{
menu();
}
else
{
System.out.println("unknown command `" + line + "'");
menu();
}
}
catch(java.io.IOException ex)
{
ex.printStackTrace();
}
catch(Ice.LocalException ex)
{
ex.printStackTrace();
}
}
while(!line.equals("x"));
return 0;
}
private static void menu()
{
System.out.println(
"usage:\n" +
"t: send greeting\n" +
"s: shutdown server\n" +
"x: exit\n" +
"?: help\n");
}
}