#ifndef _YPROXY_CRC_HPP_ #define _YPROXY_CRC_HPP_ class CRC { public: CRC(); virtual ~CRC(); void crcAdd(int c); int getVal(void)const; private: static int crc_tab[256]; int mCRCVal; long mCRCAnz; }; inline CRC::CRC() : mCRCVal(-1L), mCRCAnz(0) { } inline CRC::~CRC() { } inline void CRC::crcAdd(int c) { unsigned long ch1,ch2,cc; /* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 */ /* for (i = 0; i < size; i++) */ /* crccode = crc32Tab[(int) ((crccode) ^ (buf[i])) & 0xff] ^ */ /* (((crccode) >> 8) & 0x00FFFFFFL); */ /* return(crccode); */ cc= (c) & 0x000000ffL; ch1=(mCRCVal ^ cc) & 0xffL; ch1=crc_tab[ch1]; ch2=(mCRCVal>>8L) & 0xffffffL; // Correct version mCRCVal=ch1 ^ ch2; mCRCAnz++; } inline int CRC::getVal(void)const { return mCRCVal; } #endif