Hauptseite | Klassenhierarchie | Alphabetische Liste | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente

# checksum.hpp

    00001
    00022 #ifndef CHECKSUM_HEADER
    00023    #define CHECKSUM_HEADER
    00024
    00025    #include <windows.h>
    00026    #include <vector>
    00027
    00028    #include "crcmodel.h"
    00029
    00031    #ifndef CRCCHECKSUMWIDTH
    00032       #define CRCCHECKSUMWIDTH 16
    00033    #endif
    00034
    00036    #ifndef POLY
    00037       #define POLY 0x1021
    00038    #endif
    00039
    00041    #ifndef INITREGISTER
    00042       #define INITREGISTER 0xffff
    00043    #endif
    00044
    00046    #ifndef BREFLECTINPUT
    00047       #define BREFLECTINPUT false
    00048    #endif
    00049
    00051    #ifndef BREFLECTOUTPUT
    00052       #define BREFLECTOUTPUT false
    00053    #endif
    00054
    00056    #ifndef BXOROUT
    00057       #define BXOROUT 0
    00058    #endif
    00059
    00060
    00061    typedef WORD CHECKSUM_TYPE;
    00062
    00067    class CChecksum
    00068    {
    00069       public:
    00070          // Default constructor
    00074          CChecksum()
    00075          {
    00076             m_sData.cm_width= CRCCHECKSUMWIDTH;
    00077             m_sData.cm_poly=  POLY;
    00078             m_sData.cm_init=  INITREGISTER;
    00079             m_sData.cm_refin= BREFLECTINPUT;
    00080             m_sData.cm_refot= BREFLECTOUTPUT;
    00081             m_sData.cm_xorot= BXOROUT;
    00082             m_sData.cm_reg=   INITREGISTER;
    00083          }
    00084
    00085          virtual ~CChecksum() {};
    00086
    00087          // CalcCheckSum
    00092          CHECKSUM_TYPE CalcCheckSum( const std::vector<unsigned char>& block );
    00093
    00094       protected:
    00095       private:
    00097          cm_t m_sData;
    00098    };
    00099
    00100 #endif