1 /*****************************************************************************/ 2 /* */ 3 /* CRCSTRM.H */ 4 /* */ 5 /* (C) 1993-96 Ullrich von Bassewitz */ 6 /* Wacholderweg 14 */ 7 /* D-70597 Stuttgart */ 8 /* EMail: uz@ibb.schwaben.com */ 9 /* */ 10 /*****************************************************************************/ 11 12 13 14 // $Id$ 15 // 16 // $Log$ 17 // 18 // 19 20 21 22 #ifndef _CRCSTRM_H 23 #define _CRCSTRM_H 24 25 26 27 #include "crc.h" 28 #include "nullstrm.h" 29 30 31 32 /*****************************************************************************/ 33 /* class CRCStream */ 34 /*****************************************************************************/ 35 36 37 38 class CRCStream : public NullStream { 39 40 protected: 41 u32 CRC; 42 43 public: 44 CRCStream (); 45 46 // Derived from class NullStream 47 virtual void Write (const void *Buf, size_t Count); 48 49 // New functions 50 u32 GetCRC () const; 51 52 }; 53 54 55 CRCStream()56inline CRCStream::CRCStream () : 57 NullStream (), 58 CRC (0) 59 { 60 } 61 62 63 GetCRC()64inline u32 CRCStream::GetCRC () const 65 { 66 return CRC; 67 } 68 69 70 71 /*****************************************************************************/ 72 /* Outside the classes */ 73 /*****************************************************************************/ 74 75 76 77 u32 GetCRC (const Streamable*); 78 u32 GetCRC (const Streamable&); 79 // Return a CRC value for the instance data 80 81 82 83 // End of CRCSTRM.H 84 85 #endif 86