00001 /****************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00008 00009 #ifndef lgrDataOperations_H_ 00010 #define lgrDataOperations_H_ 00011 00012 #include "lgrCore.h" 00013 #include <absoluteTime.h> 00014 00015 class DtString; 00016 00017 namespace MAKLogger 00018 { 00019 class DtMessageInput; 00020 class DtMessageOutput; 00021 class DtMessageState; 00022 class DtLgrSystemDriver; 00023 class DtLgrFileInput; 00024 00025 class DT_DLL_LGRCORE DtCopyDataSettings 00026 { 00027 public: 00028 DtCopyDataSettings( const DtAbsoluteTime& absTime, 00029 const DtRelativeTime& relOffset) : 00030 myTime(absTime), 00031 myOffset(relOffset) 00032 {} 00033 00034 const DtAbsoluteTime& time() const { return myTime;} 00035 const DtRelativeTime& offset() const { return myOffset;} 00036 00037 protected: 00038 DtAbsoluteTime myTime; 00039 DtRelativeTime myOffset; 00040 }; 00041 00042 00043 class DT_DLL_LGRCORE DtLgrDataOperations 00044 { 00045 public: 00046 00048 DtLgrDataOperations(DtLgrSystemDriver* myOptionalDriver, 00049 const DtString& myOperationName,int myPacketOperations); 00050 00055 bool copyData(DtMessageState* state=0); 00056 00059 bool mergeData( DtMessageState& state); 00060 00064 bool createStateTransition(const DtAbsoluteTime& initialStateTime); 00065 00067 bool skipToTime(); 00068 00070 bool createEmptyState(); 00071 00076 bool createStateAtTime(); 00077 00081 DtMessageState* createState(); 00082 00083 00085 bool updateOperation(int percent); 00086 00087 DtLgrFileInput* myInput; 00088 DtLgrFileInput* mySecondaryInput; 00089 DtMessageOutput* myOutput; 00090 DtCopyDataSettings mySettings; 00091 DtCopyDataSettings mySecondarySettings; 00092 DtString myOperationName; 00093 int myPacketOperationCount; 00094 DtLgrSystemDriver* myOptionalDriver; 00095 }; 00096 } 00097 00098 #endif