00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00040 #ifndef IODATASTREAMITR_H
00041 #define IODATASTREAMITR_H
00042
00043 #ifndef JOBCRESULT_H
00044 #include "JobControl/JobCResult.h"
00045 #endif
00046 #ifndef STRING
00047 #include <string>
00048 #define STRING
00049 #endif
00050 #ifndef LIST
00051 #include <list>
00052 #define LIST
00053 #endif
00054 #ifndef PER_H
00055 #include "Persistency/Per.h"
00056 #endif
00057
00058 class MomNavigator;
00059 class VldContext;
00060
00061 class IoDataStreamItr {
00062
00063 public:
00064 IoDataStreamItr();
00065 IoDataStreamItr(const char* sourceName);
00066 virtual ~IoDataStreamItr();
00067
00068 const char* GetSourceName() const { return fSourceName.c_str(); }
00069 void SetSourceName(const char* name) { fSourceName = name; }
00070
00071
00072 virtual bool IsValid() const = 0;
00073 virtual const char* GetFormat() const = 0;
00074 virtual int LoadRecords(MomNavigator* mom) = 0;
00075 virtual int Increment(int n=1, MomNavigator* m=0) = 0;
00076 virtual int Decrement(int n=1, MomNavigator* m=0) = 0;
00077 virtual JobCResult GoTo(const VldContext& vld, MomNavigator* m=0) = 0;
00078
00079
00080 virtual int GoToEOF();
00081 virtual int DefineStream(const char* streamname, const char* treename);
00082 virtual int Streams(const char* streamlist);
00083 virtual int Select(const char* stream, const char* selection, bool isRequired = false);
00084 virtual int SetSequenceMode(const char* stream, Per::ESequenceMode seqmode);
00085 virtual int SetPerOwnedDisabled(const char* stream,
00086 bool perowneddisabled = true);
00087 virtual int SetWindow(const char* stream, double lower, double upper);
00088 virtual void SetPort(unsigned int port);
00089 virtual void SetTimeOut(unsigned int seconds);
00090
00091 virtual int SetMaxFileRepeat(const char* stream,int numRepeat);
00092 virtual int SetMeanMom(const char* stream, double mean);
00093 virtual int SetPushRandom(const char* stream, bool setRandom);
00094 virtual void SetRandomSeed(int rSeed);
00095 virtual int SetTestMode(const char* stream,bool testmode);
00096
00097
00098 virtual void AddFile(const char* fullfilepathname, int at = -1,
00099 const char* streamlist = "*");
00100 virtual const char* GetCurrentFile(const char* streamname = "*") const;
00101 virtual JobCResult GoToFile(int i, const char* streamlist = "*");
00102 virtual JobCResult GoToFile(const char* fullfilepathname,
00103 const char* streamlist = "*");
00104 virtual JobCResult NextFile(int n = 1, const char* streamlist = "*");
00105 virtual JobCResult PrevFile(int n = 1, const char* streamlist = "*");
00106 virtual void RemoveFile(const char* fullfilepathname="*",
00107 const char* streamlist="*");
00108 virtual std::ostream& ListFile(std::ostream& os,
00109 const char* streamlist = "*") const;
00110
00111 private:
00112
00113 virtual JobCResult OpenFile();
00114 virtual void CloseFile();
00115
00116 std::string fSourceName;
00117 std::list<std::string> fFileList;
00118 std::list<std::string>::iterator fFileListItr;
00119 bool fIsBOF;
00120
00121 };
00122
00123 #endif
00124