lgrRecordInterface.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00009 
00010 #ifndef lgrRecordInterface_H_
00011 #define lgrRecordInterface_H_
00012 
00013 #include "lgrTimeInterface.h"
00014 #include "absoluteTime.h"
00015 #include "lgrCheckpointPolicy.h"
00016 #include <vlutil/vlString.h>
00017 
00018 namespace MAKLogger
00019 {
00020 
00021    class DtLogger;
00022    class DtLgrRecordDriver;
00023    class DtLgrRecordCommandFactory;
00024 
00028    class DT_DLL_LGRCORE DtLgrRecordInterface : public virtual DtLgrTimeInterface
00029    {
00030 
00031    public:
00032 
00033       typedef DtLgrRecordCommandFactory Factory;
00034 
00037       static DtLgrRecordInterface* create(DtLogger&);
00038 
00041       static DtLgrRecordInterface* createNonThreadsafe(DtLogger& logger,
00042          const DtLgrRecordDriver& driver);
00043 
00044    protected:
00045 
00047       DtLgrRecordInterface(DtLogger& logger,const DtLgrRecordDriver& driver);
00048 
00049 
00050    public:
00051       virtual ~DtLgrRecordInterface();
00052 
00054       virtual void startNewFile(const DtString& filename,bool overwrite)  const;
00055 
00057       virtual void recordToMultipleFiles(const DtString& filename)  const;
00058 
00061       virtual void closeFile()  const;
00062 
00064       enum StopCondition
00065       {
00067          StopOnCommandOnly,
00069          StopOnDuration,
00071          StopOnSize,
00073          StopOnDurationOrSize
00074       };
00075 
00077       virtual void setStopCondition(StopCondition,bool close)  const;
00078 
00082       virtual void setStopDuration(DtRelativeTime duration)  const;
00083 
00087       virtual void setStopSize(DtU64 filesize)  const;
00088 
00090       virtual void setPauseOnRecordAs(bool record) const;
00091 
00093       virtual bool isFileLoaded() const;
00094 
00096       virtual bool isFileEmpty() const;
00097 
00099       virtual const DtString& filename() const;
00100 
00102       virtual bool isRecording()  const;
00103 
00105       virtual bool isPaused()  const;
00106 
00108       virtual bool isStopped()  const;
00109 
00111       virtual bool pauseOnRecordAs() const;
00112 
00114       virtual void record() const;
00115 
00117       virtual void pause() const;
00118 
00120       virtual void unpause() const;
00121 
00123       virtual void stop(bool closeAndOpenForPlayback) const;
00124 
00126       virtual void setCheckpointParameters(DtCheckpointPolicy::Policy policy,
00127          int size,int count,DtAbsoluteTime time)const;
00128 
00130       virtual void cancelRecording() const;
00131 
00134       virtual void saveRecordedData(const DtString& filename,
00135          bool onlySinceLastSaveData, bool outputDuration) const;
00136 
00138       virtual void setRecordToMultipleFilesSettings(double duration,
00139          const DtString& namingConvention) const;
00140 
00142       int checkpointPolicyId() const;
00143 
00145       int checkpointCount() const;
00146 
00148       int checkpointSize() const;
00149 
00151       DtAbsoluteTime checkpointTime() const;
00152 
00154       double multipleFileDuration() const;
00155 
00157       const DtString& multipleFileNamingConvention() const;
00158 
00160       void newFileOpened(DtResponse);
00161       void newFileFailed(DtResponse);
00162       void newFileClosed(DtResponse);
00163       void recordingChanged(DtResponse);
00164       void recordingPausedChanged(DtResponse);
00165       void pauseOnRecordAsChanged(DtResponse);
00166       void checkpointParametersChanged(DtResponse);
00167       void fileEmptyChanged(DtResponse);
00168       void recordToMultipleFilesChanged(DtResponse);
00169 
00170       DtValueSignal<DtString> newFileOpenedSignal;
00171       DtValueSignal<DtString> newFileFailedSignal;
00172       DtValueSignal<bool> recordingChangedSignal;
00173       DtValueSignal<bool> recordingPausedChangedSignal;
00174       DtValueSignal<bool> pauseOnRecordAsChangedSignal;
00175 
00176    protected:
00177 
00178       void connectResponseHandler(DtLgrCommandId id,
00179          void (DtLgrRecordInterface::* function)(DtResponse));
00180 
00181       DtString myNewFileName;
00182       DtString myErrorMessage;
00183       bool myRecordingFlag;
00184       bool myPausedFlag;
00185       bool myPauseOnRecordAs;
00186       bool myIsFileLoadedFlag;
00187       bool myEmptyFlag;
00188       int myCheckpointPolicy;
00189       int myCheckpointCount;
00190       int myCheckpointSize;
00191       DtAbsoluteTime myCheckpointTime;
00192 
00193       double myMultipleFileDuration;
00194       DtString myMultipleFileNamingConvention;
00195 
00196    };
00197 
00198 }
00199 
00200 #endif

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)