Public Member Functions | Protected Member Functions
TimeSlaveBuffer Class Reference

Brief description of class still missing. More...

#include <TimeSlaveBuffer.h>

Inheritance diagram for TimeSlaveBuffer:
GpCoreTools::DynamicBuffer

List of all members.

Public Member Functions

 TimeSlaveBuffer (int fileDescriptor, TimeSlaveStream *stream)
 ~TimeSlaveBuffer ()

Protected Member Functions

virtual int bytesAvailable (char *buffer, int byteCount)

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

TimeSlaveBuffer::TimeSlaveBuffer ( int  fileDescriptor,
TimeSlaveStream stream 
)

Description of constructor still missing

    : DynamicBuffer(fileDescriptor)
{
  _stream=stream;
}

Description of destructor still missing

{
}

Member Function Documentation

int TimeSlaveBuffer::bytesAvailable ( char *  buffer,
int  byteCount 
) [protected, virtual]

Peers having a GPS time reference send back their time and the broadcast time I sent in the request.

Implements GpCoreTools::DynamicBuffer.

References GpCoreTools::MessageRawHeader::isValid(), GpCoreTools::MessageRawHeader::lengthLittleEndian(), GpCoreTools::DynamicBuffer::read(), and TRACE.

{
  TRACE;
  // If less bytes are available, just wait for more data.
  int readBytes=MessageRawHeader::SynchronizationSize+
                MessageRawHeader::HeaderSize+
                MessageRawHeader::CheckSumSize;
  if(byteCount<readBytes) {
    return 0;
  }
  MessageRawHeader * hdr=reinterpret_cast<MessageRawHeader *>(buffer);
  if(!hdr->isValid()) {
    return 1;
  }
  unsigned short length=hdr->lengthLittleEndian();
  readBytes+=length;
  if(byteCount<readBytes) {
    return 0;
  }
  buffer+=MessageRawHeader::SynchronizationSize+MessageRawHeader::HeaderSize;
  char * payload=buffer;
  buffer+=length;
  if(hdr->isValid(*reinterpret_cast<const FletcherChecksum *>(buffer), payload, length)) {
    read(payload, length);
  }
  return readBytes;
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines