forked from BOINC/boinc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainDocument.h
279 lines (217 loc) · 8.86 KB
/
MainDocument.h
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
// Berkeley Open Infrastructure for Network Computing
// http://boinc.berkeley.edu
// Copyright (C) 2005 University of California
//
// This is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation;
// either version 2.1 of the License, or (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// To view the GNU Lesser General Public License visit
// http://www.gnu.org/copyleft/lesser.html
// or write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#ifndef _MAINDOCUMENT_H_
#define _MAINDOCUMENT_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "MainDocument.cpp"
#endif
#include "common_defs.h"
#include "gui_rpc_client.h"
class CMainDocument;
class CNetworkConnection : public wxObject {
public:
CNetworkConnection(CMainDocument* pDocument);
~CNetworkConnection();
void Poll();
void FireReconnectEvent() { m_bConnectEvent = true; };
void ForceReconnect() { m_bForceReconnect = true; SetStateDisconnected(); };
int FrameShutdownDetected();
int GetConnectedComputerName(wxString& strMachine);
int GetConnectingComputerName(wxString& strMachine);
bool IsComputerNameLocal(const wxString& strMachine);
void GetLocalPassword(wxString& strPassword);
int SetComputer(const wxChar* szComputer, const wxChar* szPassword, const bool bUseDefaultPassword);
void SetStateError();
void SetStateErrorAuthentication();
void SetStateReconnecting();
void SetStateSuccess(wxString& strComputer, wxString& strComputerPassword);
void SetStateDisconnected();
bool IsConnectEventSignaled() { return m_bConnectEvent; };
bool IsConnected() { return m_bConnected; };
bool IsReconnecting() { return m_bReconnecting; };
private:
CMainDocument* m_pDocument;
bool m_bFrameShutdownDetected;
bool m_bConnectEvent;
bool m_bForceReconnect;
bool m_bReconnectOnError;
bool m_bConnected;
bool m_bReconnecting;
bool m_bUseDefaultPassword;
wxString m_strNewComputerName;
wxString m_strNewComputerPassword;
wxString m_strConnectedComputerName;
wxString m_strConnectedComputerPassword;
};
class CMainDocument : public wxObject {
DECLARE_DYNAMIC_CLASS(CMainDocument)
public:
CMainDocument();
~CMainDocument();
//
// Global
//
private:
wxDateTime m_dtCachedCCStatusTimestamp;
public:
int CachedStateUpdate();
CNetworkConnection* m_pNetworkConnection;
int OnInit();
int OnExit();
int OnPoll();
int OnRefreshState();
int ResetState();
int Connect(
const wxChar* szComputer,
const wxChar* szComputerPassword = wxEmptyString,
const bool bDisconnect = FALSE,
const bool bUseDefaultPassword = FALSE
);
int Reconnect();
int CachedStateLock();
int CachedStateUnlock();
int FrameShutdownDetected();
int CoreClientQuit();
int GetConnectedComputerName(wxString& strMachine);
int GetConnectingComputerName(wxString& strMachine);
bool IsComputerNameLocal(const wxString strMachine);
bool IsConnected();
bool IsReconnecting();
int GetCoreClientStatus(CC_STATUS&);
int SetActivityRunMode(int iMode, int iTimeout);
int SetNetworkRunMode(int iMode, int iTimeout);
int ForceCacheUpdate();
int RunBenchmarks();
bool IsUserAuthorized();
RPC_CLIENT rpc;
CC_STATE state;
CC_STATUS status;
HOST_INFO host;
wxDateTime m_dtCachedStateTimestamp;
//
// Project Tab
//
private:
int CachedProjectStatusUpdate();
wxDateTime m_dtProjecStatusTimestamp;
public:
PROJECT* project(unsigned int);
float m_fProjectTotalResourceShare;
int GetProjectCount();
int ProjectNoMoreWork(int iIndex);
int ProjectAllowMoreWork(int iIndex);
int ProjectAttach(const wxString& strURL, const wxString& strAccountKey);
int ProjectDetach(int iIndex);
int ProjectUpdate(int iIndex);
int ProjectReset(int iIndex);
int ProjectSuspend(int iIndex);
int ProjectResume(int iIndex);
//
// Work Tab
//
private:
int CachedResultsStatusUpdate();
wxDateTime m_dtResultsTimestamp;
public:
RESULTS results;
RESULT* result(unsigned int);
int GetWorkCount();
int WorkSuspend(
std::string& strProjectURL,
std::string& strName
);
int WorkResume(
std::string& strProjectURL,
std::string& strName
);
int WorkShowGraphics(
std::string& strProjectURL,
std::string& strName,
int iGraphicsMode,
std::string& strWindowStation,
std::string& strDesktop,
std::string& strDisplay
);
int WorkAbort(
std::string& strProjectURL,
std::string& strName
);
//
// Messages Tab
//
private:
public:
MESSAGES messages;
MESSAGE* message(unsigned int);
int CachedMessageUpdate();
int GetMessageCount();
int ResetMessageState();
int m_iMessageSequenceNumber;
//
// Transfers Tab
//
private:
int CachedFileTransfersUpdate();
wxDateTime m_dtFileTransfersTimestamp;
public:
FILE_TRANSFERS ft;
FILE_TRANSFER* file_transfer(unsigned int);
int GetTransferCount();
int TransferRetryNow(int iIndex);
int TransferAbort(int iIndex);
//
// Disk Tab
//
private:
wxDateTime m_dtDiskUsageTimestamp;
public:
DISK_USAGE disk_usage;
PROJECT* DiskUsageProject(unsigned int);
int CachedDiskUsageUpdate();
//
// Statistics Tab
//
private:
int CachedStatisticsStatusUpdate();
wxDateTime m_dtStatisticsStatusTimestamp;
public:
PROJECTS statistics_status;
PROJECT* statistic(unsigned int);
int GetStatisticsCount();
//
// Proxy Configuration
//
private:
public:
GR_PROXY_INFO proxy_info;
int GetProxyConfiguration();
int SetProxyConfiguration();
//
// Simple GUI Updates
//
private:
wxDateTime m_dtCachedSimpleGUITimestamp;
int CachedSimpleGUIUpdate();
public:
int GetSimpleGUIWorkCount();
};
#endif
#ifdef SANDBOX
#define BOINC_MASTER_GROUP_NAME "boinc_master"
#endif