Brief description of class still missing. More...
#include <TimeMasterBuffer.h>
Public Member Functions | |
TimeMasterBuffer (int fileDescriptor, UbxDevice *device) | |
~TimeMasterBuffer () | |
Protected Member Functions | |
virtual int | bytesAvailable (char *buffer, int bytesCount) |
Brief description of class still missing.
Full description of class still missing
TimeMasterBuffer::TimeMasterBuffer | ( | int | fileDescriptor, |
UbxDevice * | device | ||
) |
Description of constructor still missing
References TRACE.
: DynamicBuffer(fileDescriptor) { TRACE; _device=device; }
int TimeMasterBuffer::bytesAvailable | ( | char * | buffer, |
int | bytesCount | ||
) | [protected, virtual] |
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; }