MChunk.h
1 /*****************************************************************************
2  **
3  ** Header file for Muster API Chunk object
4  **
5  ** Name : MChunk.h
6  ** Author : Leonardo Bernardini
7 ** Version : Alpha 9.0 Wed May 17th 2017
8  **
9  ** Copyright 2000-2017, Virtual Vertex
10  ** All Rights Reserved.
11  **
12  ** This file contains UNPUBLISHED PROPRIETARY SOURCE CODE.
13  ** The contents of this file may not be disclosed to third parties, copied
14  ** or duplicated in any form, in whole or in part, without the prior written
15  ** permission of the author.
16  **
17  *****************************************************************************/
18 #ifndef MCHUNK_H
19 #define MCHUNK_H
20 
21 #ifdef WIN32
22 // Windows definitions
23 #ifdef MCLIENTLIB_EXPORTS
24 #define MCLIENTLIB_API __declspec(dllexport)
25 #else
26 #define MCLIENTLIB_API __declspec(dllimport)
27 #endif
28 #else
29 
30 #ifndef MCLIENTLIB_EXPORTS
31 #ifdef LINUX
32 #define MCLIENTLIB_API
33 #else
34 #define MCLIENTLIB_API
35 #endif
36 #else
37 #define MCLIENTLIB_API
38 #endif
39 #endif
40 
41 #if defined(_WIN32)
42 #pragma warning(disable: 4251)
43 #endif // _WIN32
44 
45 #include <string>
46 #include <vector>
47 #include <set>
48 #include <MClientLib/MError.h>
49 #include <MClientLib/MTextFileMarker.h>
50 #include <MClientLib/MChunkUsage.h>
51 
52 namespace MClientLib {
53 
64  class MCLIENTLIB_API MChunk {
65  public:
72  // Dispatcher chunks status
73  kChunkStatusOnHold = 0x01,
74  kChunkStatusSubmitted = 0x02,
75  kChunkStatusCompleted = 0x04,
76  kChunkStatusWarning = 0x08,
77  kChunkStatusError = 0x10
78  };
79 
80  private:
81  long jobId;
82  long chunkId;
83  long id;
84  int status;
85  int requeued;
86  float startFrame;
87  float endFrame;
88  float byFrame;
89  int frameStart;
90  int frameStep;
91  int priority;
92  long long int endTime;
93  long long int startTime;
94  std::string result;
95  std::string renderedBy;
96  long long int elapsed;
97  long long int updateTime;
98  bool isAssembler;
99  bool selectedForEmergency;
100  int packetType;
101  int platform;
102  int exitCode;
103  std::string task;
104  std::string dependFromChunks;
105  std::string dependFromChunksErrorLevel;
106  std::string borrowedInstances;
107  std::vector<MTextFileMarker> warningMarkers;
108  std::vector<MTextFileMarker> errorMarkers;
109  std::vector<MTextFileMarker> silencedErrorMarkers;
110  std::vector<MTextFileMarker> silencedWarningMarkers;
111 
112 
113  public:
114  MChunk();
115  MChunk(const MChunk& ref );
116  virtual ~MChunk();
118  virtual long getId() ;
119  virtual long getJobId() ;
120  virtual long getChunkId();
121  virtual int getStatus();
122  virtual int getRequeued();
123  virtual float getStartFrame();
124  virtual float getEndFrame();
125  virtual float getByFrame();
126  virtual int getFrameStart();
127  virtual int getFrameStep();
128  virtual int getPriority();
129  virtual int getPacketType();
130  virtual long long int getEndTime();
131  virtual long long int getStartTime();
132  virtual const std::string getResult();
133  virtual const std::string getRenderedBy();
134  virtual const std::string getTask();
135  virtual const std::string getDependFromChunks();
136  virtual const std::string getDependFromChunksErrorLevels();
137  virtual const std::string getBorrowedInstances();
139  virtual long long int getElapsed();
140  virtual long long int getUpdateTime();
141  virtual bool getIsAssembler();
142  virtual bool getSelectedForEmergency();
143  virtual const std::vector<MClientLib::MTextFileMarker> getWarningMarkers();
144  virtual const std::vector<MClientLib::MTextFileMarker> getErrorMarkers();
145  virtual const std::vector<MClientLib::MTextFileMarker> getSilencedWarningMarkers();
146  virtual const std::vector<MClientLib::MTextFileMarker> getSilencedErrorMarkers();
147  virtual int getPlatform();
148  virtual int getExitCode();
150  virtual const std::vector<long> numberedFrames();
151  virtual const std::vector<float> rangeFrames();
153  virtual void setId(long _id ) ;
154  virtual void setJobId(long _jobId ) ;
155  virtual void setChunkId(long _chunkId );
156  virtual void setStatus(int _status );
157  virtual void setRequeued(int _requeued );
158  virtual void setPriority(int _priority );
159  virtual void setPacketType(int _packetType );
160  virtual void setStartFrame(float _startFrame );
161  virtual void setEndFrame(float _endFrame );
162  virtual void setByFrame(float _byFrame );
163  virtual void setFrameStart(int _frameStart );
164  virtual void setFrameStep(int _frameStep );
165  virtual void setEndTime(long long int endingTime );
166  virtual void setStartTime(long long int startingTime );
167  virtual void setResult(const std::string& _result );
168  virtual void setRenderedBy(const std::string& _renderedBy );
169  virtual void setTask(const std::string& _task );
170  virtual void setDependFromChunks(const std::string& _depends );
171  virtual void setDependFromChunksErrorLevels(const std::string& _depends );
172  virtual void setElapsed(long long int _elapsed );
173  virtual void setUpdateTime(long long int _updateTime );
174  virtual void setIsAssembler(bool _isAssembler );
175  virtual void setPlatform(int _platform );
176  virtual void setExitCode(int _exitCode );
177  virtual void setSelectedForEmergency(bool _selectedForEmergency );
178  virtual void setWarningMarkers(const std::vector<MClientLib::MTextFileMarker>& _warningMarkers );
179  virtual void setErrorMarkers(const std::vector<MClientLib::MTextFileMarker>& _errorMarkers );
180  virtual void setSilencedWarningMarkers(const std::vector<MClientLib::MTextFileMarker>& _warningMarkers );
181  virtual void setSilencedErrorMarkers(const std::vector<MClientLib::MTextFileMarker>& _errorMarkers );
182  virtual void setBorrowedInstances(const std::string& _borrowedInstances );
185  virtual bool Unmarshall(const std::vector<std::string>& items);
186  virtual bool Unmarshall(const char* data);
187  virtual const std::string Marshall();
188  void castedRelease();
190  };
191 
193 }
194 
195 #endif
kChunksStatus
Chunk status enumeration.
Definition: MChunk.h:71
Class holding a chunk data.
Definition: MChunk.h:64