D:/work/code_by/IOStream/InputStream.h

查看本檔案說明文件.
00001 #ifndef _INPUTSTREAM_H_
00002 #define _INPUTSTREAM_H_
00003 
00004 #include <stdio.h>
00008 class TInputStream
00009 {
00010 protected:
00011   TInputStream();       
00012 public:
00013   virtual ~TInputStream();
00014   virtual int Available(void) = 0;      
00015   virtual void Close(void);             
00016   virtual int Position(void) = 0;       
00017   virtual int Read(void) = 0;           
00018   int Reads(void *, int);               
00019   virtual void Reset(void);             
00020   virtual int Skip(int) = 0;            
00021 };
00025 class TFileInputStream : public TInputStream
00026 {
00027 protected:
00028   FILE *fin;    
00029   unsigned char *cache; 
00030   int position; 
00031   int available;        
00032   int cacheSize;        
00033   int cacheIndex;       
00034   int cacheDataSize;    
00035 public:
00036   TFileInputStream();   
00037   TFileInputStream(int);
00038   ~TFileInputStream();
00039   bool Open(char *);    
00040   int Available(void);
00041   void Close(void);
00042   int Position(void);
00043   int Read(void);
00044   void Reset(void);
00045   int Skip(int);
00046 };
00050 class TFilterInputStream : public TInputStream
00051 {
00052 protected:
00053   TInputStream *In;     
00054 
00055   TFilterInputStream(TInputStream *);
00056 public:
00057   virtual ~TFilterInputStream();        
00058   int Available(void);
00059   virtual void Close(void);
00060   virtual int Position(void);
00061   virtual int Read(void);
00062   virtual void Reset(void);
00063   virtual int Skip(int);
00064 };
00068 class TDataInputStream : public TFilterInputStream
00069 {
00070 public:
00071   TDataInputStream(TInputStream *);     
00072   ~TDataInputStream();
00073   char ReadChar(void);          
00074   float ReadFloat(void);        
00075   double ReadDouble(void);      
00076   int ReadInt(void);            
00077   int ReadLine(char *, int);    
00078 };
00082 class TCipherInputStream : public TFilterInputStream
00083 {
00084 private:
00085   int index;    
00086 protected:
00087   int keySize;  
00088   char *key;    
00089 public:
00090   TCipherInputStream(TInputStream *);   
00091   ~TCipherInputStream();
00092   void SetKey(char *);          
00093   virtual int Read(void);
00094   void Reset(void);
00095   int Skip(int);
00096 };
00097 
00098 #endif
00099 

產生日期:Tue Jul 11 11:52:19 2006, 專案:cbmr, 產生器:  doxygen 1.4.7