blob: 42e09e09908634198f9bbbefe95357d2f7f5d9e7 (
plain)
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
|
// project created on 5/14/2007 at 2:04 PM
using System;
using System.Threading;
using Gtk;
namespace OpenGridServices.Manager
{
class MainClass
{
public static bool QuitReq=false;
public static BlockingQueue<string> PendingOperations = new BlockingQueue<string>();
private static Thread OperationsRunner;
private static GridServerConnectionManager gridserverConn;
private static MainWindow win;
public static void DoMainLoop()
{
while(!QuitReq)
{
Application.RunIteration();
}
}
public static void RunOperations()
{
string operation;
string cmd;
char[] sep = new char[1];
sep[0]=' ';
while(!QuitReq)
{
operation=PendingOperations.Dequeue();
Console.WriteLine(operation);
cmd = operation.Split(sep)[0];
switch(cmd) {
case "connect_to_gridserver":
win.SetStatus("Connecting to grid server...");
if(gridserverConn.Connect(operation.Split(sep)[1],operation.Split(sep)[2],operation.Split(sep)[3])) {
win.SetStatus("Connected OK with session ID:" + gridserverConn.SessionID);
win.SetGridServerConnected(true);
Thread.Sleep(3000);
win.SetStatus("Downloading region maps...");
gridserverConn.DownloadMap();
} else {
win.SetStatus("Could not connect");
}
break;
case "restart_gridserver":
win.SetStatus("Restarting grid server...");
if(gridserverConn.RestartServer()) {
win.SetStatus("Restarted server OK");
Thread.Sleep(3000);
win.SetStatus("");
} else {
win.SetStatus("Error restarting grid server!!!");
}
break;
case "shutdown_gridserver":
win.SetStatus("Shutting down grid server...");
if(gridserverConn.ShutdownServer()) {
win.SetStatus("Grid server shutdown");
win.SetGridServerConnected(false);
Thread.Sleep(3000);
win.SetStatus("");
} else {
win.SetStatus("Could not shutdown grid server!!!");
}
break;
case "disconnect_gridserver":
gridserverConn.DisconnectServer();
win.SetGridServerConnected(false);
break;
}
}
}
public static void Main (string[] args)
{
gridserverConn = new GridServerConnectionManager();
Application.Init ();
win = new MainWindow ();
win.Show ();
OperationsRunner = new Thread(new ThreadStart(RunOperations));
OperationsRunner.IsBackground=true;
OperationsRunner.Start();
DoMainLoop();
}
}
}
|