#include <TCPIPchecksum.h>
Public Member Functions | |
| TCPIPchecksum () | |
Static Public Member Functions | |
| static uint16_t | checksum (const void *addr, unsigned int count) |
| static uint16_t | _checksum (const void *addr, unsigned int count) |
Calculates checksum.
Definition at line 34 of file TCPIPchecksum.h.
| TCPIPchecksum::TCPIPchecksum | ( | ) | [inline] |
Definition at line 37 of file TCPIPchecksum.h.
{}
| uint16_t TCPIPchecksum::_checksum | ( | const void * | addr, | |
| unsigned int | count | |||
| ) | [static] |
Definition at line 25 of file TCPIPchecksum.cc.
Referenced by TCPSerializer::checksum(), and checksum().
{
uint32_t sum = 0;
while (count > 1)
{
sum += *((const uint16_t *&)addr)++;
if (sum & 0x80000000)
sum = (sum & 0xFFFF) + (sum >> 16);
count -= 2;
}
if (count)
sum += *(const uint8_t *)addr;
while (sum >> 16)
sum = (sum & 0xFFFF) + (sum >> 16);
return (uint16_t)sum;
}
| static uint16_t TCPIPchecksum::checksum | ( | const void * | addr, | |
| unsigned int | count | |||
| ) | [inline, static] |
Definition at line 46 of file TCPIPchecksum.h.
{
return ~ _checksum(addr, count);
}
1.7.1