Main Page | Class Hierarchy | Class List | Directories | File List | Class Members

io.h

00001 #ifndef IO_H
00002 #define IO_H
00003 
00004 #include "doomed.h"
00005 #include <stdio.h>
00006 #include <string>
00007 #include <assert.h>
00008 
00009 class Options;
00010 //====================================================
00028 //====================================================
00029 class IO
00030 {
00031  public:
00032   //====================================================
00037   //====================================================
00038   static IO& instance() 
00039   { 
00040     assert(msp_io && "Failed to call IO::build()");
00041     return *msp_io; 
00042   }
00043 
00044   //====================================================
00049   //====================================================
00050   static void build() 
00051   { 
00052     if (msp_io != 0)
00053       return;
00054     msp_io = new IO();
00055     ms_destroyer.setDoomed(msp_io);
00056   }
00057 
00058   //====================================================
00062   //====================================================
00063   ~IO() {}  
00064 
00065 
00066   //====================================================
00078   //====================================================
00079   void fopen(const char* outFn);
00080 
00081   //====================================================
00088   //====================================================
00089   void fclose();
00090 
00091   //====================================================
00099   //====================================================
00100   void rename();
00101 
00102   //====================================================
00112   //====================================================
00113   void fputs(const char* s);
00114 
00115   
00116  private:
00117   //====================================================
00121   //====================================================
00122   IO();
00123 
00124   IO(const IO&);                    
00125   IO& operator=(const IO&);         
00126   
00127  private:
00128   //=======================
00129   // Attributes 
00130   //=======================
00131 
00132   //====================================================
00144   //====================================================
00145   FILE* mp_fpOut;
00146 
00147   //====================================================
00153   //====================================================
00154   int          m_flush;
00155 
00156   //====================================================
00162   //====================================================
00163   int          m_print;
00164 
00165   //====================================================
00169   //====================================================
00170   std::string  m_outFn;
00171 
00172   //====================================================
00176   //====================================================
00177   std::string  m_fn;
00178 
00179   //====================================================
00183   //====================================================
00184   std::string  m_fnBak;
00185 
00186 
00187   //====================================================
00191   //====================================================
00192   static IO* msp_io;
00193 
00194   //====================================================
00198   //====================================================
00199   static SingletonDestroyer<IO> ms_destroyer;
00200 
00201 };
00202 
00203 
00204 
00205 #endif //IO_H
00206 
00207 



Project Hosted By:
SourceForge.net Logo