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

查看本檔案說明文件.
00001 #ifndef _OUTPUTSTREAM_H_
00002 #define _OUTPUTSTREAM_H_
00003 
00004 #include <stdio.h>
00008 class TOutputStream
00009 {
00010 protected:
00011   TOutputStream();      
00012 public:
00013   virtual ~TOutputStream();
00014   virtual void Close(void);     
00015   virtual void Flush(void);     
00016   virtual int Size(void) = 0;   
00017   virtual void Write(int) = 0;  
00018   void Writes(void *, int);     
00019 };
00023 class TFileOutputStream : public TOutputStream
00024 {
00025 protected:
00026   FILE *fout;   
00027   unsigned char *cache; 
00028   int cacheSize;        
00029   int cacheDataSize;    
00030 
00031   void FlushCache(void);        
00032 public:
00033   TFileOutputStream();  
00034   TFileOutputStream(int);       
00035   ~TFileOutputStream();
00036   bool Open(char *);    
00037   void Close(void);
00038   void Flush(void);
00039   int Size(void);
00040   void Write(int);
00041 };
00045 class TFilterOutputStream : public TOutputStream
00046 {
00047 protected:
00048   TOutputStream *Out;   
00049 
00050   TFilterOutputStream(TOutputStream *); 
00051 public:
00052   virtual ~TFilterOutputStream();
00053   virtual void Close(void);
00054   virtual void Flush(void);
00055   virtual int Size(void);
00056   virtual void Write(int);
00057 };
00061 class TDataOutputStream : public TFilterOutputStream
00062 {
00063 public:
00064   TDataOutputStream(TOutputStream *);   
00065   ~TDataOutputStream();
00066   void WriteChar(char);         
00067   void WriteDouble(double);     
00068   void WriteFloat(float);       
00069   void WriteInt(int);           
00070   void WriteString(char *);     
00071 };
00075 class TCipherOutputStream : public TFilterOutputStream
00076 {
00077 private:
00078   int index;    
00079 protected:
00080   int keySize;  
00081   char *key;    
00082 public:
00083   TCipherOutputStream(TOutputStream *); 
00084   ~TCipherOutputStream();
00085   void SetKey(char *);          
00086   virtual void Write(int);
00087 };
00088 
00089 #endif
00090 

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