00001
00011 #ifndef TARTDATASOURCE_H
00012 #define TARTDATASOURCE_H
00013 class TArtDataFormat;
00014
00019 typedef enum {
00020 kNormal,
00021 kEnd,
00022 kComment,
00023 kError
00024 } ArtBlockType_t;
00025
00027 typedef enum {
00028 kNORMALBLOCK,
00029 kWAIT,
00030 kRUNSTOP,
00031 kEOF,
00032 kERRORBLOCK
00033 } ArtBlockStat_t;
00035 typedef enum {
00036 kNORMALEVENT,
00037 kEOB,
00038 kCOMMENT,
00039 kERROREVENT
00040 } ArtEventStat_t;
00042 typedef enum {
00043 kEXIST,
00044 kNOTEXIST
00045 } ArtFileStat_t;
00046
00052 class TArtDataSource {
00053 public:
00057 static const int kMaxBufferSize;
00058 virtual ~TArtDataSource();
00059 virtual ArtFileStat_t Open(const char* sourceName = 0) = 0;
00060 virtual void Close() = 0;
00061 virtual int Read(char *buf,const int& size, const int &offset = 0) = 0;
00062 virtual ArtBlockStat_t GetNextBlock() = 0;
00063 virtual ArtEventStat_t GetNextEvent(unsigned short* buf,
00064 unsigned short* runbuf,
00065 unsigned short*rnum,
00066 int &nw);
00067 TArtDataFormat *GetDataFormat() { return fFormat; }
00068 protected:
00069 TArtDataSource();
00070 TArtDataFormat *fFormat;
00071 ArtBlockStat_t fBlockStatus;
00072 ArtEventStat_t fEventStatus;
00073 ArtFileStat_t fFileStatus;
00074 private:
00075
00076 };
00077 #endif // end of #ifdef TARTDATASOURCE_H