Public Member Functions | Static Public Member Functions

TCPIPchecksum Class Reference

#include <TCPIPchecksum.h>

List of all members.

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)

Detailed Description

Calculates checksum.

Definition at line 34 of file TCPIPchecksum.h.


Constructor & Destructor Documentation

TCPIPchecksum::TCPIPchecksum (  )  [inline]

Definition at line 37 of file TCPIPchecksum.h.

{}


Member Function Documentation

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


The documentation for this class was generated from the following files: