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()56 inline CRCStream::CRCStream () :
57     NullStream (),
58     CRC (0)
59 {
60 }
61 
62 
63 
GetCRC()64 inline 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