00001
00011 #ifndef TARTFILEDATASOURCE_H
00012 #define TARTFILEDATASOURCE_H
00013 #include "TArtDataSource.h"
00014 #include <iostream>
00015 #include <sys/stat.h>
00016 using namespace std;
00017 class TArtFileDataSource : public TArtDataSource {
00018 public:
00019 static TArtDataSource* Instance();
00020 ~TArtFileDataSource();
00021 ArtFileStat_t Open(const char* sourceName = 0);
00022 void Close();
00023 ArtBlockStat_t GetNextBlock();
00024 int Read(char *buf, const int &size, const int &offset = 0);
00025 protected:
00026 TArtFileDataSource();
00027 private:
00028 static TArtDataSource *fgInstance;
00029 FILE *fFile;
00030 struct stat fFileStat;
00031 };
00032 #endif // end of #ifdef TARTFILEDATASOURCE_H