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)
56 namespace MClientLib {
68 kInstanceStatusUndefined = 0x00,
69 kInstanceStatusIdle = 0x01,
70 kInstanceStatusPaused = 0x02,
72 kInstanceStatusCompleted = 0x04,
73 kInstanceStatusInprogress = 0x08,
74 kInstanceStatusStarting = 0x10,
75 kInstanceStatusPrechunk = 0x20,
77 kInstanceStatusPostchunk = 0x1000,
79 kInstanceStatusStreamingTemplates = 0x2000,
80 kInstanceStatusJustKilledTheProcess = 0x4000,
81 kInstanceStatusRequiresUpgrade = 0x8000,
82 kInstanceStatusLockedByTimetable = 0x10000,
83 kInstanceStatusLockedByLoggedUser = 0x20000,
84 kInstanceStatusOffline = 0x40000,
85 kInstanceStatusLockedByProcess = 0x80000,
86 kInstanceStatusLockedByPython = 0x100000
91 kProcessPriorityIdle = 1,
92 kProcessPriorityNormal = 2,
93 kProcessPriorityHigh = 3,
94 kProcessPriorityRealtime = 4
111 std::string hostName;
112 std::string instanceName;
114 std::string statusDescription;
119 std::string currentJobName;
120 std::string currentChunkName;
121 std::string currentChunkNameNoFP;
122 std::string cpuUsage;
123 std::string ramUsage;
124 std::string supportedTemplates;
126 bool realtimeLogEnabled;
127 int selectionPriority;
128 std::string hostMacAddress;
129 std::string currentCommandLine;
130 std::string stringJobsExclusions;
131 std::string stringTemplatesExclusions;
132 double currentJobTotalProgress;
133 std::string physicalCoreType;
134 double physicalCoreSpeed;
135 int physicalCpusCount;
136 int physicalCoresCount;
137 int logicalThreadsCount;
138 std::string platformDescription;
139 long long platformAffinitiyMask;
140 long long int updateTime;
141 std::string clientVersion;
143 std::vector<MClientLib::MDrive> physicalDisks;
144 time_t processStartTime;
150 virtual void Clear();
151 virtual long getChunkId();
152 virtual long getNodeId();
153 virtual int getHostPlatform();
154 virtual const std::string getHostName();
155 virtual const std::string getInstanceName();
156 virtual const std::string getHostIP();
157 virtual const std::string getStatusDescription();
158 virtual int getProcessPriority();
159 virtual long getJobId();
160 virtual int getStatus();
161 virtual bool getWillPause();
162 virtual const std::string getCurrentJobName();
163 virtual const std::string getCurrentChunkName();
164 virtual const std::string getCurrentChunkNameNoFP();
165 virtual const std::string getCpuUsage();
166 virtual const std::string getRamUsage();
167 virtual const std::string getSupportedTemplates();
168 virtual const std::string getNotes();
169 virtual bool getRealtimeLogEnabled();
170 virtual int getSelectionPriority();
171 virtual const std::string getHostMacAddresses();
172 virtual const std::string getCurrentCommandLine();
173 virtual double getCurrentJobTotalProgress();
174 virtual const std::string getPhysicalCoreType();
175 virtual double getPhysicalCoreSpeed();
176 virtual int getPhysicalCpusCount();
177 virtual int getPhysicalCoresCount();
178 virtual const std::string getPlatformDescription();
179 virtual long long getProcsAffinityMask();
180 virtual long long int getUpdateTime();
181 virtual const std::string getClientVersion();
182 virtual int getLogicalThreadsCount();
183 virtual int getInstanceNumber();
184 virtual const std::vector<MClientLib::MDrive> getPhysicalDisks();
185 virtual const std::string getJobsExclusion();
186 virtual const std::string getTemplatesExclusion();
187 virtual time_t getProcessStartTime();
189 virtual void setChunkId(
long _currentChunkId);
190 virtual void setNodeId(
long _nodeId);
191 virtual void setHostPlatform(
int _hostPlatform);
192 virtual void setHostName(
const std::string& _hostName);
193 virtual void setInstanceName(
const std::string& _instanceName);
194 virtual void setHostIP(
const std::string& _hostIp);
195 virtual void setStatusDescription(
const std::string& _statusDescription);
196 virtual void setProcessPriority(
int _processPriority);
197 virtual void setJobId(
long _jobId);
198 virtual void setStatus(
int _status);
199 virtual void setWillPause(
bool _willPause);
200 virtual void setCurrentJobName(
const std::string& _currentJobName);
201 virtual void setCurrentChunkName(
const std::string& currentChunkName);
202 virtual void setCurrentChunkNameNoFP(
const std::string& _currentChunkNameNoFP);
203 virtual void setCpuUsage(
const std::string& _cpuUsage);
204 virtual void setRamUsage(
const std::string& _ramUsage);
205 virtual void setSupportedTemplates(
const std::string& _supportedTemplates);
206 virtual void setNotes(std::string _notes);
207 virtual void setRealtimeLogEnabled(
bool _realtimeLogEnabled);
208 virtual void setSelectionPriority(
int _selectionPriority);
209 virtual void setHostMacAddresses(
const std::string& _hostMacAddress);
210 virtual void setCurrentCommandLine(
const std::string& _currentCommandLine);
211 virtual void setCurrentJobTotalProgress(
double _currentJobTotalProgress);
212 virtual void setPhysicalCoreType(
const std::string& _physicalCoreType);
213 virtual void setPhysicalCoreSpeed(
double _physicalCoreSpeed);
214 virtual void setPhysicalCpusCount(
int _physicalCpusCount);
215 virtual void setPhysicalCoresCount(
int _physicalCoresCount);
216 virtual void setPlatformDescription(
const std::string& _platformDescription);
217 virtual void setProcsAffinityMask(
long long _platformAffinitiyMask);
218 virtual void setUpdateTime(
long long int _updateTime);
219 virtual void setClientVersion(
const std::string& version);
220 virtual void setLogicalThreadsCount(
int);
221 virtual void setInstanceNumber(
int);
222 virtual void setJobsExclusion(
const std::string& exclusion);
223 virtual void setTemplatesExclusion(
const std::string& exclusion);
224 virtual void setPhysicalDisks(std::vector<MClientLib::MDrive>*);
226 virtual void clearPhysicalDisks();
227 virtual void setProcessStartTime(time_t startTime);
228 virtual bool Unmarshall(
const std::vector<std::string>& items);
229 virtual const std::string Marshall();
231 void castedRelease();
235 #define IS_HOST_OCCUPIED(x) (x >= MClientLib::MNode::kInstanceStatusCompleted && x <= MClientLib::MNode::kInstanceStatusPostchunk)