MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrRecordDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef lgrRecordDriver_H_
11 #define lgrRecordDriver_H_
12 
13 #include <lgrCore/lgrDriver.h>
14 #include <lgrUtil/absoluteTime.h>
15 #include <lgrCore/messageBuffer.h>
16 #include <vlutil/vlRunnable.h>
17 
18 class DtThread;
19 
20 namespace MAKLogger
21 {
22  class DtCheckpointPolicy;
23  class DtLgrClock;
24  class DtLgrContinuousClock;
25  class DtLgrFileInput;
26  class DtLgrFileOutput;
27  class DtLgrPlaybackDriver;
28  class DtLgrRecordCommandFactory;
29  class DtLgrRecordInterface;
30  class DtMessagePipeline;
31  class DtThreadedObject;
32  class DtLgrEditorThread;
33 
38  {
39  public:
42 
44 
45  virtual ~DtLgrRecordDriver();
46 
48  virtual void tick();
49 
50  virtual bool releasePipeline();
51  virtual bool getPipeline();
52  virtual bool hasPipeline() const;
53 
54  virtual bool isFileOpen() const;
55  virtual bool isFileEmpty() const;
56 
57  virtual bool isRecording() const;
58  virtual bool isPaused() const;
59 
61  virtual bool pauseOnRecordAs() const;
62 
64  virtual int checkpointPolicyId() const;
65 
67  virtual int checkpointCount() const;
68 
70  virtual int checkpointSize() const;
71 
73  virtual DtAbsoluteTime checkpointTime() const;
74 
76  bool interactionsCheckpointed() const;
77 
80  virtual const DtString& filename() const;
81 
86  virtual DtCheckpointPolicy* duplicateCheckpointPolicy() const;
87 
89  virtual bool recordToMultipleFiles() const;
90 
92  virtual double multipleFileDuration() const;
93 
95  virtual const DtString& multipleFileNamingConvention() const;
96 
98  virtual const DtLgrFileOutput* currentOutput() const;
99 
101  virtual bool spawnThread(DtLgrEditorThread* editorThread);
102 
104  virtual void stopAllThreads();
105 
107  virtual void stopThread( DtLgrEditorThread* runningThread );
108 
110  virtual void addTemporaryTrackedEntity(const DtString& name);
111 
112  protected:
113 
115  virtual DtLgrPlaybackDriver* getPlaybackDriver(bool checkForFileOpen) const;
116 
118  virtual void setCheckpointPolicy(DtCheckpointPolicy* policy);
119 
121  virtual void tickNormalRecording();
122 
126  virtual void tickRecordToMultipleFiles(double multipleFileDuration, bool final = false);
127 
128  virtual void configurePipeline();
129 
131  virtual void activateIdleListening();
132 
133  virtual bool doNewFile(DtString filename, DtString description, bool overwrite);
134  virtual bool doRecord(bool multipleFiles);
135  virtual bool doStop();
136  virtual bool doPause();
137  virtual bool doUnpause();
138 
140  virtual DtString multipleFileName() const;
141 
146  virtual DtString multiFileDescription(bool final);
147 
149 
150  DtResponse newFile(const DtCommand& command);
151  DtResponse closeFile(const DtCommand& command);
152  DtResponse cancelRecording(const DtCommand& command);
153  DtResponse record(const DtCommand& command);
154  DtResponse pause(const DtCommand& command);
155  DtResponse unpause(const DtCommand& command);
156  DtResponse stop(const DtCommand& command);
157  DtResponse stopCondition(const DtCommand& command);
158  DtResponse stopDuration(const DtCommand& command);
159  DtResponse stopSize(const DtCommand& command);
160  DtResponse setCheckpointParameters(const DtCommand& command);
161  DtResponse setPauseOnRecordAs(const DtCommand& command);
162  DtResponse saveRecordedData(const DtCommand& command);
163  DtResponse saveRecordedDataFinished(const DtCommand& command);
164  DtResponse setRecordToMultipleFilesSettings(const DtCommand& command);
165  DtResponse startRecordToMultipleFiles(const DtCommand& command);
167 
168  protected:
169 
171  {
172  public:
174  DtString description, DtLgrFileInput* input, DtLgrFileOutput* output,
175  int packetOperationCount, double fixedDuration,DtRelativeTime offset);
176 
177  virtual ~DumpCurrentRecordingThread();
178 
179  virtual void run();
180 
181  protected:
190  };
191 
197 
205 
209 
217  DtU64 myStopSize;
221 
230 
232  typedef std::map<DtLgrEditorThread*,DtThread*> ThreadMap;
233 
236 
239  };
240 
241 }
242 
243 #endif

Document ID: Generated on Thu Apr 7 20:50:59 EDT 2016 from SVN revision 163818
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)