MAK Data Logger API Documentation for HLA
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 "lgrDriver.h"
14 #include "absoluteTime.h"
15 #include "messageBuffer.h"
16 #include <vlutil/vlRunnable.h>
17 
18 class DtThread;
19 
20 namespace MAKLogger
21 {
22  class DtCheckpointPolicy;
23  class DtLgrClock;
24  class DtLgrFileInput;
25  class DtLgrFileOutput;
26  class DtLgrPlaybackDriver;
27  class DtLgrRecordCommandFactory;
28  class DtLgrRecordInterface;
29  class DtMessagePipeline;
30  class DtThreadedObject;
31  class DtLgrEditorThread;
32 
37  {
38  public:
41 
43 
44  virtual ~DtLgrRecordDriver();
45 
47  virtual void tick();
48 
49  virtual bool releasePipeline();
50  virtual bool getPipeline();
51  virtual bool hasPipeline() const;
52 
53  virtual bool isFileOpen() const;
54  virtual bool isFileEmpty() const;
55 
56  virtual bool isRecording() const;
57  virtual bool isPaused() const;
58 
60  virtual bool pauseOnRecordAs() const;
61 
63  int checkpointPolicyId() const;
64 
66  int checkpointCount() const;
67 
69  int checkpointSize() const;
70 
72  DtAbsoluteTime checkpointTime() const;
73 
76  virtual const DtString& filename() const;
77 
82  virtual DtCheckpointPolicy* duplicateCheckpointPolicy() const;
83 
85  virtual bool recordToMultipleFiles() const;
86 
88  virtual double multipleFileDuration() const;
89 
91  const DtString& multipleFileNamingConvention() const;
92 
94  virtual const DtLgrFileOutput* currentOutput() const;
95 
97  virtual bool spawnThread(DtLgrEditorThread* editorThread);
98 
100  virtual void stopAllThreads();
101 
103  virtual void stopThread( DtLgrEditorThread* runningThread );
104 
106  virtual void addTemporaryTrackedEntity(const DtString& name);
107 
108  protected:
109 
111  DtLgrPlaybackDriver* getPlaybackDriver(bool checkForFileOpen) const;
112 
114  virtual void setCheckpointPolicy(DtCheckpointPolicy* policy);
115 
117  void tickNormalRecording();
118 
120  void tickRecordToMultipleFiles(double multipleFileDuration);
121 
122  DtResponse newFile(const DtCommand& command);
123  DtResponse closeFile(const DtCommand& command);
124  DtResponse cancelRecording(const DtCommand& command);
125  DtResponse record(const DtCommand& command);
126  DtResponse pause(const DtCommand& command);
127  DtResponse unpause(const DtCommand& command);
128  DtResponse stop(const DtCommand& command);
129  DtResponse stopCondition(const DtCommand& command);
130  DtResponse stopDuration(const DtCommand& command);
131  DtResponse stopSize(const DtCommand& command);
132  DtResponse setCheckpointParameters(const DtCommand& command);
133  DtResponse setPauseOnRecordAs(const DtCommand& command);
134  DtResponse saveRecordedData(const DtCommand& command);
135  DtResponse saveRecordedDataFinished(const DtCommand& command);
136  DtResponse setRecordToMultipleFilesSettings(const DtCommand& command);
137  DtResponse startRecordToMultipleFiles(const DtCommand& command);
138 
140  {
141  public:
143  DtString newFileName, DtLgrFileInput* input,
144  DtLgrFileOutput* output, int packetOperationCount,
145  double fixedDuration,DtRelativeTime offset);
146 
147  virtual ~DumpCurrentRecordingThread();
148 
149  virtual void run();
150 
151  protected:
159  };
160 
161 
162  virtual void configurePipeline();
163 
164  virtual bool doNewFile(DtString filename,bool overwrite);
165  virtual bool doRecord(bool multipleFiles);
166  virtual bool doStop();
167  virtual bool doPause();
168  virtual bool doUnpause();
169 
171  DtString multipleFileName() const;
172 
177 
184 
187 
195  DtU64 myStopSize;
199 
207 
208 
210  typedef std::map<DtLgrEditorThread*,DtThread*> ThreadMap;
211 
214 
217  };
218 
219 }
220 
221 #endif

Document ID: Generated on Thu Apr 11 12:13:00 EDT 2013 from SVN revision 126011
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)