47 #ifndef _MIRA_TAPERECORDER_H_ 48 #define _MIRA_TAPERECORDER_H_ 71 template <
typename Reflector>
75 r.member(
"Codecs",
codecs,
"The codecs used for this channel",
76 std::list<BinarySerializerCodecPtr>());
79 r.member(
"Compress", compress,
"Should the data be stored compressed",
false);
83 "Compression level (0=none, 1..9=best speed to best compression, -1=default)", 0);
85 r.member(
"Interval",
interval,
"Stores only data in that interval (if 0 stores all data)",
88 "Avoid data loss while recording this channel by reading all data from a channel since last recording",
92 std::list<BinarySerializerCodecPtr>
codecs;
109 template <
typename Reflector>
112 r.member(
"Channels",
channels,
"The channels to be recorded");
114 "Record all transformation channels?",
false);
116 "The maximum size of a message block in bytes",
118 r.member(
"Filename",
filename,
"The filename for the output tape");
120 "Automatically extend filename by timestamp?",
false);
142 seqID(0), recordCounter(0) {}
169 template <
typename Reflector>
172 r.property(
"MaxMessageBlockSize", mMaxMessageBlockSize,
173 "The maximum size of a message block in bytes");
174 r.property(
"WarnOfDataLoss", mWarnDataLoss,
175 "Warn when missed update is detected for a channel with AvoidDataLoss",
false);
189 MIRA_DEPRECATED(
"Please use int compressionLevel(=0/-1) instead of bool compress(=false/true)",
190 void addChannel(
const std::string& channelID,
191 const std::list<BinarySerializerCodecPtr>& codecs,
194 addChannel(channelID, codecs, (compress ? -1 : 0), interval, avoidDataLoss);
210 void addChannel(
const std::string& channelID,
211 const std::list<BinarySerializerCodecPtr>& codecs = std::list<BinarySerializerCodecPtr>(),
212 int compressionLevel = 0,
221 void addChannel(
const std::string& channelID,
244 void stop(
bool finishQueue =
true);
250 size_t storageQueueSize();
261 void processStorageQueue(
int numEntries = 1);
269 mMaxMessageBlockSize = maxMessageBlockSize;
280 mWarnDataLoss = enable;
286 return mWarnDataLoss;
305 void addAllTransformationChannels();
306 Path timestampFilename(
const Path& filenameBase);
310 struct MessageToStore
313 std::string channelID;
320 void storageThread();
321 void storeMessage(MessageToStore& msg);
A tape is a binary file that contains recorded/serialized data of one or multiple channels...
Definition: Tape.h:142
RecordedChannelInfo()
Definition: TapeRecorder.h:66
An object that allows read access to a whole interval of channel data.
Definition: ChannelReadInterval.h:72
Duration interval
Definition: TapeRecorder.h:94
A config that can be passed to the TapeRecorder which contains all settings that should be used for r...
Definition: TapeRecorder.h:105
Class for recording channel data to tape.
Definition: TapeRecorder.h:133
Authority mAuthority
Definition: TapeRecorder.h:325
boost::mutex mStorageMutex
Definition: TapeRecorder.h:336
PropertyHint file(const std::string &filters=std::string(), bool save=false)
Tells the property editor that the path is for a file, and that it should show a "File Open"/"File Sa...
Definition: Path.h:247
Path filename
Definition: TapeRecorder.h:126
A Tape is a representation of recorded channel data in a binary file.
specialize cv::DataType for our ImgPixel and inherit from cv::DataType<Vec>
Definition: IOService.h:67
boost::filesystem::path Path
Typedef of a Path (shorter version for boost::filesystem::path)
Definition: Path.h:69
MetaTypeDatabase metaDB
Definition: TapeRecorder.h:147
std::map< std::string, ChannelInfo > ChannelMap
Typedef for ChannelInfo pointers.
Definition: TapeRecorder.h:152
std::deque< MessageToStore > mStorageQueue
Definition: TapeRecorder.h:339
std::list< BinarySerializerCodecPtr > codecs
Definition: TapeRecorder.h:92
TypeMetaPtr meta
Definition: TapeRecorder.h:146
ChannelMap mChannels
Definition: TapeRecorder.h:331
ChannelInfo()
Definition: TapeRecorder.h:141
void setMaxMessageBlockSize(uint32 maxMessageBlockSize)
Set the maximum size of the chunks.
Definition: TapeRecorder.h:267
int compressionLevel
Definition: TapeRecorder.h:93
Provides MIRA_CLASS_SERIALIZATION macro and includes the major headers of the serialization framework...
An object that allows read access to data of a channel.
Definition: ChannelReadWrite.h:440
boost::condition_variable mStorageThreadCondition
Definition: TapeRecorder.h:335
uint8 VersionType
Definition: ReflectorInterface.h:72
bool mFirstCallbackMessage
Definition: TapeRecorder.h:330
Wrapper class for boost::posix_time::ptime for adding more functionality to it.
Definition: Time.h:416
uint32 maxMessageBlockSize
Definition: TapeRecorder.h:125
uint64 recordCounter
Definition: TapeRecorder.h:145
#define MIRA_FRAMEWORK_EXPORT
Definition: FrameworkExports.h:61
void setWarnOfDataLoss(bool enable)
Set whether detected data loss should show a warning.
Definition: TapeRecorder.h:278
sec_type seconds() const
Returns normalized number of seconds (0..59)
Definition: Time.h:278
Use this class to represent time durations.
Definition: Time.h:104
Informations about a recorded channel.
Definition: TapeRecorder.h:138
boost::thread mStorageThread
Definition: TapeRecorder.h:334
RecordedChannelInfoMap channels
Definition: TapeRecorder.h:123
void reflect(Reflector &r)
Definition: TapeRecorder.h:170
Authorities act as a facade to the framework.
Definition: Authority.h:94
bool mStorageThreadStarted
Definition: TapeRecorder.h:337
uint32 mMaxMessageBlockSize
Definition: TapeRecorder.h:326
bool mWarnDataLoss
Definition: TapeRecorder.h:327
boost::shared_ptr< TypeMeta > TypeMetaPtr
Definition: MetaSerializer.h:309
volatile bool mStorageThreadTerminationRequest
Definition: TapeRecorder.h:340
tick_type microseconds() const
Returns normalized number of microseconds (0..999)
Definition: Time.h:288
Tape mTape
Definition: TapeRecorder.h:328
bool timestampFilename
Definition: TapeRecorder.h:127
std::map< std::string, RecordedChannelInfo > RecordedChannelInfoMap
A map of recorded channel settings.
Definition: TapeRecorder.h:99
Contains all settings for a recorded channel like compression, codecs,...
Definition: TapeRecorder.h:62
bool isRecording() const
Returns whether TapeRecorder is currently gathering data after record was called. ...
Definition: TapeRecorder.h:292
uint32 seqID
Definition: TapeRecorder.h:143
Time expected
Definition: TapeRecorder.h:144
MIRA_DEPRECATED("Please use int compressionLevel(=0/-1) instead of bool compress(=false/true)", void addChannel(const std::string &channelID, const std::list< BinarySerializerCodecPtr > &codecs, bool compress, Duration interval=Duration::microseconds(0), bool avoidDataLoss=false))
Add a channel to the list of recorded channels.
Definition: TapeRecorder.h:189
Duration mInitialWaitForDataDuration
Definition: TapeRecorder.h:332
bool mIsRecording
Definition: TapeRecorder.h:329
#define MIRA_REFLECT_VERSION(reflector, versionNumber)
Macro that should be used to specify the (reflected) version of the class.
Definition: ReflectorInterface.h:874
void reflect(Reflector &r)
Definition: TapeRecorder.h:110
PerformanceStatistics stats
Definition: TapeRecorder.h:148
bool recordTransforms
Definition: TapeRecorder.h:124
The framework that holds all manager classes and provides startup and shutdown of all framework relat...
bool getWarnOfDataLoss()
Query if data loss warning is enabled.
Definition: TapeRecorder.h:284
Typename typeName(bool cvqualify=true)
Returns a compiler and platform independent typename of T.
Definition: Typename.h:103
bool avoidDataLoss
Definition: TapeRecorder.h:95
void reflect(Reflector &r)
Definition: TapeRecorder.h:72