diff options
Diffstat (limited to 'OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs')
-rw-r--r-- | OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs new file mode 100644 index 0000000..42e09e0 --- /dev/null +++ b/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs | |||
@@ -0,0 +1,96 @@ | |||
1 | // project created on 5/14/2007 at 2:04 PM | ||
2 | using System; | ||
3 | using System.Threading; | ||
4 | using Gtk; | ||
5 | |||
6 | namespace OpenGridServices.Manager | ||
7 | { | ||
8 | class MainClass | ||
9 | { | ||
10 | |||
11 | public static bool QuitReq=false; | ||
12 | public static BlockingQueue<string> PendingOperations = new BlockingQueue<string>(); | ||
13 | |||
14 | private static Thread OperationsRunner; | ||
15 | |||
16 | private static GridServerConnectionManager gridserverConn; | ||
17 | |||
18 | private static MainWindow win; | ||
19 | |||
20 | public static void DoMainLoop() | ||
21 | { | ||
22 | while(!QuitReq) | ||
23 | { | ||
24 | Application.RunIteration(); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | public static void RunOperations() | ||
29 | { | ||
30 | string operation; | ||
31 | string cmd; | ||
32 | char[] sep = new char[1]; | ||
33 | sep[0]=' '; | ||
34 | while(!QuitReq) | ||
35 | { | ||
36 | operation=PendingOperations.Dequeue(); | ||
37 | Console.WriteLine(operation); | ||
38 | cmd = operation.Split(sep)[0]; | ||
39 | switch(cmd) { | ||
40 | case "connect_to_gridserver": | ||
41 | win.SetStatus("Connecting to grid server..."); | ||
42 | if(gridserverConn.Connect(operation.Split(sep)[1],operation.Split(sep)[2],operation.Split(sep)[3])) { | ||
43 | win.SetStatus("Connected OK with session ID:" + gridserverConn.SessionID); | ||
44 | win.SetGridServerConnected(true); | ||
45 | Thread.Sleep(3000); | ||
46 | win.SetStatus("Downloading region maps..."); | ||
47 | gridserverConn.DownloadMap(); | ||
48 | } else { | ||
49 | win.SetStatus("Could not connect"); | ||
50 | } | ||
51 | break; | ||
52 | |||
53 | case "restart_gridserver": | ||
54 | win.SetStatus("Restarting grid server..."); | ||
55 | if(gridserverConn.RestartServer()) { | ||
56 | win.SetStatus("Restarted server OK"); | ||
57 | Thread.Sleep(3000); | ||
58 | win.SetStatus(""); | ||
59 | } else { | ||
60 | win.SetStatus("Error restarting grid server!!!"); | ||
61 | } | ||
62 | break; | ||
63 | |||
64 | case "shutdown_gridserver": | ||
65 | win.SetStatus("Shutting down grid server..."); | ||
66 | if(gridserverConn.ShutdownServer()) { | ||
67 | win.SetStatus("Grid server shutdown"); | ||
68 | win.SetGridServerConnected(false); | ||
69 | Thread.Sleep(3000); | ||
70 | win.SetStatus(""); | ||
71 | } else { | ||
72 | win.SetStatus("Could not shutdown grid server!!!"); | ||
73 | } | ||
74 | break; | ||
75 | |||
76 | case "disconnect_gridserver": | ||
77 | gridserverConn.DisconnectServer(); | ||
78 | win.SetGridServerConnected(false); | ||
79 | break; | ||
80 | } | ||
81 | } | ||
82 | } | ||
83 | |||
84 | public static void Main (string[] args) | ||
85 | { | ||
86 | gridserverConn = new GridServerConnectionManager(); | ||
87 | Application.Init (); | ||
88 | win = new MainWindow (); | ||
89 | win.Show (); | ||
90 | OperationsRunner = new Thread(new ThreadStart(RunOperations)); | ||
91 | OperationsRunner.IsBackground=true; | ||
92 | OperationsRunner.Start(); | ||
93 | DoMainLoop(); | ||
94 | } | ||
95 | } | ||
96 | } \ No newline at end of file | ||