#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); }