00001 #ifndef IOfileVI_h 00002 #define IOfileVI_h 00003 00004 #include "Event/IOBase.h" 00005 00006 #include <string> 00007 00008 //------------------------------------------------ 00010 00019 //------------------------------------------------- 00020 // JA Hernando, Santa Cruz, CA, 06/15/00 00021 //------------------------------------------------- 00022 00023 //########################### 00024 class IOfileVI 00025 //########################### 00026 { 00027 public: 00028 00030 IOfileVI(){clear();} 00032 virtual ~IOfileVI(){} 00033 00035 virtual void setFileName(std::string name) {m_nameFile = name;} 00037 virtual void setMode(IOBase::MODE m) {m_mode = m;} 00039 virtual void setNumEvents(int nevt) {m_numEvents = nevt;} 00041 virtual void setOpen(bool t) {m_open = t;} 00043 virtual void increase() {m_currentEvent++;} 00044 00046 virtual void open() = 0; 00048 virtual void close() = 0; 00049 00051 virtual bool nextEvent() { return (m_currentEvent+1 < m_numEvents);} 00053 virtual void readEvent() {increase();} 00055 virtual void writeEvent() {increase();m_numEvents++;} 00057 virtual void skipEvent() {increase();} 00058 00060 virtual std::string getFileName() const {return m_nameFile;} 00062 IOBase::MODE getMode() const {return m_mode;} 00064 virtual int eventNumber() const {return m_currentEvent;} 00066 virtual int numEvents() const {return m_numEvents;} 00068 virtual bool isOpen() const {return m_open;} 00069 00070 protected: 00071 00073 virtual void clear(); 00074 00075 private: 00076 00078 std::string m_nameFile; 00080 IOBase::MODE m_mode; 00082 bool m_open; 00083 00085 int m_numEvents; 00087 int m_currentEvent; 00088 }; 00089 #endif