28 #ifdef MCLIENTLIB_EXPORTS
29 #define MCLIENTLIB_API __declspec(dllexport)
31 #define MCLIENTLIB_API __declspec(dllimport)
35 #ifndef MCLIENTLIB_EXPORTS
37 #define MCLIENTLIB_API
39 #define MCLIENTLIB_API
42 #define MCLIENTLIB_API
48 #pragma warning(disable: 4251)
54 #include <MClientLib/MError.h>
55 #include <MClientLib/MDrive.h>
56 #include <MClientLib/MAlarm.h>
62 class MCLIENTLIB_API MNodePathTranslator {
64 virtual ~MNodePathTranslator();
65 virtual std::string translate(
const std::string& path);
88 kInstanceStatusUndefined = 0x00,
89 kInstanceStatusIdle = 0x01,
90 kInstanceStatusPaused = 0x02,
92 kInstanceStatusCompleted = 0x04,
93 kInstanceStatusInprogress = 0x08,
94 kInstanceStatusStarting = 0x10,
95 kInstanceStatusPrechunk = 0x20,
97 kInstanceStatusPostchunk = 0x1000,
99 kInstanceStatusStreamingTemplates = 0x2000,
100 kInstanceStatusJustKilledTheProcess = 0x4000,
101 kInstanceStatusRequiresUpgrade = 0x8000,
102 kInstanceStatusLockedByTimetable = 0x10000,
103 kInstanceStatusLockedByLoggedUser = 0x20000,
104 kInstanceStatusOffline = 0x40000,
105 kInstanceStatusLockedByProcess = 0x80000,
106 kInstanceStatusLockedByPython = 0x100000,
107 kInstanceStatusRegularQueue = 0x200000,
108 kInstanceStatusEmergencyQueue = 0x400000,
109 kInstanceStatusLockedByInstance = 0x800000,
110 kInstanceStatusLockedByReserv = 0x1000000
115 kProcessPriorityIdle = 1,
116 kProcessPriorityNormal = 2,
117 kProcessPriorityHigh = 3,
118 kProcessPriorityRealtime = 4
127 kSysEventForceLogout,
135 std::string hostName;
136 std::string instanceName;
138 std::string statusDescription;
142 std::string reservVersion;
145 std::string currentJobName;
146 std::string currentChunkName;
147 std::string currentChunkNameNoFP;
148 std::string cpuUsage;
149 std::string nicUsage;
150 std::string disksUsage;
151 std::string ramUsage;
152 std::string supportedTemplates;
154 bool realtimeLogEnabled;
155 int selectionPriority;
156 std::string hostMacAddress;
157 std::string currentCommandLine;
158 std::string stringJobsExclusions;
159 std::string stringTemplatesExclusions;
160 double currentJobTotalProgress;
161 std::string physicalCoreType;
162 double physicalCoreSpeed;
163 int physicalCpusCount;
164 int physicalCoresCount;
165 int logicalThreadsCount;
166 int physicalGpusCount;
167 std::vector<std::string> physicalGpusNames;
168 std::string platformDescription;
169 unsigned long long platformAffinitiyMask;
170 unsigned long long platformGpusMask;
171 long long int updateTime;
172 std::string clientVersion;
174 std::vector<MClientLib::MDrive> physicalDisks;
175 time_t processStartTime;
176 std::string processesLogsPath;
177 bool sharedProcessesLogsPath;
180 std::map<unsigned long long, MClientLib::MAlarm> alarms;
185 virtual void Clear();
186 virtual long getChunkId();
187 virtual long getNodeId();
188 virtual int getHostPlatform();
189 virtual const std::string getHostName();
190 virtual const std::string getInstanceName();
191 virtual const std::string getHostIP();
192 virtual const std::string getStatusDescription();
193 virtual int getProcessPriority();
194 virtual long getJobId();
195 virtual long getReservId();
196 virtual const std::string getReservVersion();
197 virtual int getStatus();
198 virtual bool getWillPause();
199 virtual const std::string getCurrentJobName();
200 virtual const std::string getCurrentChunkName();
201 virtual const std::string getCurrentChunkNameNoFP();
202 virtual const std::string getCpuUsage();
203 virtual const std::string getRamUsage();
204 virtual const std::string getNicUsage();
205 virtual const std::string getDisksUsage();
206 virtual const std::string getSupportedTemplates();
207 virtual const std::string getNotes();
208 virtual bool getRealtimeLogEnabled();
209 virtual int getSelectionPriority();
210 virtual const std::string getHostMacAddresses();
211 virtual const std::string getCurrentCommandLine();
212 virtual double getCurrentJobTotalProgress();
213 virtual const std::string getPhysicalCoreType();
214 virtual double getPhysicalCoreSpeed();
215 virtual int getPhysicalCpusCount();
216 virtual int getPhysicalCoresCount();
217 virtual const std::string getPlatformDescription();
218 virtual unsigned long long getProcsAffinityMask();
219 virtual unsigned long long getGpusAffinityMask();
220 virtual long long int getUpdateTime();
221 virtual const std::string getClientVersion();
222 virtual int getLogicalThreadsCount();
223 virtual int getInstanceNumber();
224 virtual const std::vector<MClientLib::MDrive> getPhysicalDisks();
225 virtual const std::string getJobsExclusion();
226 virtual const std::string getTemplatesExclusion();
227 virtual time_t getProcessStartTime();
228 virtual const std::string getProcessesLogsPath();
229 virtual bool getSharedProcessesLogsPath();
230 virtual int getPhysicalGpusCount();
231 virtual std::vector<std::string> getPhysicalGpusNames();
232 virtual time_t getPauseOn();
233 virtual time_t getResumeOn();
235 virtual void setChunkId(
long _currentChunkId);
236 virtual void setNodeId(
long _nodeId);
237 virtual void setHostPlatform(
int _hostPlatform);
238 virtual void setHostName(
const std::string& _hostName);
239 virtual void setInstanceName(
const std::string& _instanceName);
240 virtual void setHostIP(
const std::string& _hostIp);
241 virtual void setStatusDescription(
const std::string& _statusDescription);
242 virtual void setProcessPriority(
int _processPriority);
243 virtual void setJobId(
long _jobId);
244 virtual void setReservVersion(
const std::string& _reservVersion);
245 virtual void setReservId(
long _reservId);
246 virtual void setStatus(
int _status);
247 virtual void setWillPause(
bool _willPause);
248 virtual void setCurrentJobName(
const std::string& _currentJobName);
249 virtual void setCurrentChunkName(
const std::string& currentChunkName);
250 virtual void setCurrentChunkNameNoFP(
const std::string& _currentChunkNameNoFP);
251 virtual void setCpuUsage(
const std::string& _cpuUsage);
252 virtual void setRamUsage(
const std::string& _ramUsage);
253 virtual void setNicUsage(
const std::string& _nicUsage);
254 virtual void setDisksUsage(
const std::string& _disksUsage);
255 virtual void setSupportedTemplates(
const std::string& _supportedTemplates);
256 virtual void setNotes(std::string _notes);
257 virtual void setRealtimeLogEnabled(
bool _realtimeLogEnabled);
258 virtual void setSelectionPriority(
int _selectionPriority);
259 virtual void setHostMacAddresses(
const std::string& _hostMacAddress);
260 virtual void setCurrentCommandLine(
const std::string& _currentCommandLine);
261 virtual void setCurrentJobTotalProgress(
double _currentJobTotalProgress);
262 virtual void setPhysicalCoreType(
const std::string& _physicalCoreType);
263 virtual void setPhysicalCoreSpeed(
double _physicalCoreSpeed);
264 virtual void setPhysicalCpusCount(
int _physicalCpusCount);
265 virtual void setPhysicalCoresCount(
int _physicalCoresCount);
266 virtual void setPlatformDescription(
const std::string& _platformDescription);
267 virtual void setProcsAffinityMask(
unsigned long long _platformAffinitiyMask);
268 virtual void setGpusAffinityMask(
unsigned long long _platformGpusMask);
269 virtual void setUpdateTime(
long long int _updateTime);
270 virtual void setClientVersion(
const std::string& version);
271 virtual void setLogicalThreadsCount(
int);
272 virtual void setInstanceNumber(
int);
273 virtual void setJobsExclusion(
const std::string& exclusion);
274 virtual void setTemplatesExclusion(
const std::string& exclusion);
275 virtual void setPhysicalDisks(std::vector<MClientLib::MDrive>*);
277 virtual void clearPhysicalDisks();
278 virtual void setProcessStartTime(time_t startTime);
279 virtual void setProcessesLogsPath(
const std::string& _processesLogPath);
280 virtual void setSharedProcessesLogsPath(
bool _sharedProcessesLogsPath);
281 virtual void setPhysicalGpusCount(
int _physicalGpusCount);
282 virtual void setPhysicalGpusNames(
const std::vector<std::string>& _physicalGpusNames);
283 virtual void setPauseOn(time_t _pauseOn);
284 virtual void setResumeOn(time_t _resumeOn);
286 virtual void clearAlarms();
288 virtual void removeAlarm(
unsigned long long alarmId);
289 virtual void silenceAlarm(
unsigned long long alarmId);
291 virtual bool existsAlarm(
unsigned long long alarmId);
292 virtual bool hasAlarms();
293 virtual std::vector<unsigned long long> getAlarms();
295 virtual bool Unmarshall(
const std::vector<std::string>& items, MNodePathTranslator* translator = 0);
296 virtual const std::string Marshall(MNodePathTranslator* translator = 0);
297 void castedRelease();
305 #define IS_HOST_OCCUPIED(x) (x >= MClientLib::MNode::kInstanceStatusCompleted && x <= MClientLib::MNode::kInstanceStatusPostchunk)
Class holding a drive status data.
Class holding an instance entry.
Class holding an alarm data.