GloRawNavDataStdMessage::GloRawNavDataStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); int arraySizeInUniformFillFields = (BodySize() - 9) / 1; _serializer.Deserialize(p_message, _num); p_message += sizeof(_num); _serializer.Deserialize(p_message, _fcn); p_message += sizeof(_fcn); _serializer.Deserialize(p_message, _time); p_message += sizeof(_time); _serializer.Deserialize(p_message, _type); p_message += sizeof(_type); _serializer.Deserialize(p_message, _len); p_message += sizeof(_len); _serializer.Deserialize(p_message, sizeof(std::vector<Types::u1>::value_type) * arraySizeInUniformFillFields, _data); p_message += sizeof(std::vector<Types::u1>::value_type) * arraySizeInUniformFillFields; _serializer.Deserialize(p_message, _cs); p_message += sizeof(_cs); _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
RmsStdMessage::RmsStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); _serializer.Deserialize(p_message, _hpos); p_message += sizeof(_hpos); _serializer.Deserialize(p_message, _vpos); p_message += sizeof(_vpos); _serializer.Deserialize(p_message, _hvel); p_message += sizeof(_hvel); _serializer.Deserialize(p_message, _vvel); p_message += sizeof(_vvel); _serializer.Deserialize(p_message, _solType); p_message += sizeof(_solType); _serializer.Deserialize(p_message, _cs); p_message += sizeof(_cs); _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
QzssNavDataStdMessage::QzssNavDataStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); /*throw Common::NotImplementedException();*/ _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
void MioBufferIn::Append(char * buff,uint32_t num) { //just append; if(TailSize() >= num ) { memcpy(wptr,buff,num); wptr+=num; return; } //move buffer if(HeadSize() + TailSize() >= num) { memmove(buffer,rptr, MidSize()); wptr = buffer + (wptr -rptr); rptr = buffer; memmove(wptr,buff,num); wptr+= num; return; } while(size < (num + MidSize()) ) size*=DEFALUT_BUFFER_RESIZE; //malloc bigsize; char * tmp = new char [size]; memmove(tmp,rptr, MidSize()); wptr = tmp + (wptr -rptr); rptr =tmp; delete[] buffer; buffer = tmp; }
QzssIonoParamsStdMessage::QzssIonoParamsStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); _serializer.Deserialize(p_message, 39, _par); p_message += 39; _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
REStdMessage::REStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); int arraySizeInUniformFillFields = (BodySize() - 0) / 1; _serializer.Deserialize(p_message, arraySizeInUniformFillFields, _reply); p_message += arraySizeInUniformFillFields; _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
Security1StdMessage::Security1StdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); _serializer.Deserialize(p_message, sizeof(std::vector<Types::u1>::value_type) * 6, _data); p_message += sizeof(std::vector<Types::u1>::value_type) * 6; _serializer.Deserialize(p_message, _crc16); p_message += sizeof(_crc16); _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
PosVelVectorStdMessage::PosVelVectorStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); _serializer.Deserialize(p_message, _sample); p_message += sizeof(_sample); _serializer.Deserialize(p_message, _delta); p_message += sizeof(_delta); _serializer.Deserialize(p_message, _word1); p_message += sizeof(_word1); _serializer.Deserialize(p_message, _word2); p_message += sizeof(_word2); _serializer.Deserialize(p_message, _word3); p_message += sizeof(_word3); _serializer.Deserialize(p_message, _word4); p_message += sizeof(_word4); _serializer.Deserialize(p_message, _word5); p_message += sizeof(_word5); _serializer.Deserialize(p_message, _word6); p_message += sizeof(_word6); _serializer.Deserialize(p_message, _word7); p_message += sizeof(_word7); _serializer.Deserialize(p_message, _word8); p_message += sizeof(_word8); _serializer.Deserialize(p_message, _word9); p_message += sizeof(_word9); _serializer.Deserialize(p_message, _crc16); p_message += sizeof(_crc16); _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
RotationMatrixAndVectorsStdMessage::RotationMatrixAndVectorsStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); _serializer.Deserialize(p_message, _time); p_message += sizeof(_time); _serializer.Deserialize(p_message, _q00); p_message += sizeof(_q00); _serializer.Deserialize(p_message, _q01); p_message += sizeof(_q01); _serializer.Deserialize(p_message, _q02); p_message += sizeof(_q02); _serializer.Deserialize(p_message, _q12); p_message += sizeof(_q12); _serializer.Deserialize(p_message, sizeof(std::vector<Types::f4>::value_type) * 3, _rms); p_message += sizeof(std::vector<Types::f4>::value_type) * 3; _serializer.Deserialize(p_message, sizeof(std::vector<Types::u1>::value_type) * 3, _solType); p_message += sizeof(std::vector<Types::u1>::value_type) * 3; _serializer.Deserialize(p_message, _flag); p_message += sizeof(_flag); _serializer.Deserialize(p_message, sizeof(std::vector<Types::f4>::value_type) * 3, _bl0); p_message += sizeof(std::vector<Types::f4>::value_type) * 3; _serializer.Deserialize(p_message, sizeof(std::vector<Types::f4>::value_type) * 3, _bl1); p_message += sizeof(std::vector<Types::f4>::value_type) * 3; _serializer.Deserialize(p_message, sizeof(std::vector<Types::f4>::value_type) * 3, _bl2); p_message += sizeof(std::vector<Types::f4>::value_type) * 3; _serializer.Deserialize(p_message, _cs); p_message += sizeof(_cs); _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
BeiDouEphemerisStdMessage::BeiDouEphemerisStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); _serializer.Deserialize(p_message, 122, _req); p_message += 122; _serializer.Deserialize(p_message, _tgd2); p_message += sizeof(_tgd2); _serializer.Deserialize(p_message, _navType); p_message += sizeof(_navType); _serializer.Deserialize(p_message, _cs); p_message += sizeof(_cs); _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
RefEpochStdMessage::RefEpochStdMessage( const char* pc_message, int p_length ) : _id(pc_message, 2), _bodySize(p_length - HeadSize()) { char* p_message = const_cast<char*>(pc_message); p_message += HeadSize(); _serializer.Deserialize(p_message, _sample); p_message += sizeof(_sample); _serializer.Deserialize(p_message, _scale); p_message += sizeof(_scale); _serializer.Deserialize(p_message, _reftime); p_message += sizeof(_reftime); _serializer.Deserialize(p_message, _crc16); p_message += sizeof(_crc16); _isCorrect = (p_message - pc_message == p_length); if (!_isCorrect) { sLogger.Debug(QString("The message %1 is incorrect. Excepted size is %2 whilst the actual size is %3.") .arg(QString::fromStdString(ToString())).arg(p_length).arg(p_message - pc_message)); } }
uint64 EbmlVoid::ReplaceWith(EbmlElement & EltToReplaceWith, IOCallback & output, bool ComeBackAfterward, bool bWithDefault) { EltToReplaceWith.UpdateSize(bWithDefault); if (HeadSize() + GetSize() < EltToReplaceWith.GetSize() + EltToReplaceWith.HeadSize()) { // the element can't be written here ! return INVALID_FILEPOS_T; } if (HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() == 1) { // there is not enough space to put a filling element return INVALID_FILEPOS_T; } uint64 CurrentPosition = output.getFilePointer(); output.setFilePointer(GetElementPosition()); EltToReplaceWith.Render(output, bWithDefault); if (HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() > 1) { // fill the rest with another void element EbmlVoid aTmp; aTmp.SetSize_(HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() - 1); // 1 is the length of the Void ID int HeadBefore = aTmp.HeadSize(); aTmp.SetSize_(aTmp.GetSize() - CodedSizeLength(aTmp.GetSize(), aTmp.GetSizeLength(), aTmp.IsFiniteSize())); int HeadAfter = aTmp.HeadSize(); if (HeadBefore != HeadAfter) { aTmp.SetSizeLength(CodedSizeLength(aTmp.GetSize(), aTmp.GetSizeLength(), aTmp.IsFiniteSize()) - (HeadAfter - HeadBefore)); } aTmp.RenderHead(output, false, bWithDefault); // the rest of the data is not rewritten } if (ComeBackAfterward) { output.setFilePointer(CurrentPosition); } return GetSize() + HeadSize(); }
uint64 EbmlVoid::Overwrite(const EbmlElement & EltToVoid, IOCallback & output, bool ComeBackAfterward, bool bWithDefault) { // EltToVoid.UpdateSize(bWithDefault); if (EltToVoid.GetElementPosition() == 0) { // this element has never been written return 0; } if (EltToVoid.GetSize() + EltToVoid.HeadSize() <2) { // the element can't be written here ! return 0; } uint64 CurrentPosition = output.getFilePointer(); output.setFilePointer(EltToVoid.GetElementPosition()); // compute the size of the voided data based on the original one SetSize(EltToVoid.GetSize() + EltToVoid.HeadSize() - 1); // 1 for the ID SetSize(GetSize() - CodedSizeLength(GetSize(), GetSizeLength(), IsFiniteSize())); // make sure we handle even the strange cases //uint32 A1 = GetSize() + HeadSize(); //uint32 A2 = EltToVoid.GetSize() + EltToVoid.HeadSize(); if (GetSize() + HeadSize() != EltToVoid.GetSize() + EltToVoid.HeadSize()) { SetSize(GetSize()-1); SetSizeLength(CodedSizeLength(GetSize(), GetSizeLength(), IsFiniteSize()) + 1); } if (GetSize() != 0) { RenderHead(output, false, bWithDefault); // the rest of the data is not rewritten } if (ComeBackAfterward) { output.setFilePointer(CurrentPosition); } return EltToVoid.GetSize() + EltToVoid.HeadSize(); }
RotationMatrixAndVectorsStdMessage::RotationMatrixAndVectorsStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
CalBandsDelayStdMessage::CalBandsDelayStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
PosVelVectorStdMessage::PosVelVectorStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
TrackingTimeStdMessage::TrackingTimeStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
GloNavDataStdMessage::GloNavDataStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
Security1StdMessage::Security1StdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
QzssIonoParamsStdMessage::QzssIonoParamsStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
RcvBeiDouTimeOffsetStdMessage::RcvBeiDouTimeOffsetStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
uint64 KaxSegment::GetGlobalPosition(uint64 aRelativePosition) const { return aRelativePosition + GetElementPosition() + HeadSize(); }
uint64 KaxSegment::GetRelativePosition(uint64 aGlobalPosition) const { return aGlobalPosition - GetElementPosition() - HeadSize(); }
BeiDouEphemerisStdMessage::BeiDouEphemerisStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }
LoggingHistoryStdMessage::LoggingHistoryStdMessage( const std::string& p_id, int p_size ) : _id(p_id), _bodySize(p_size - HeadSize()) { _isCorrect = true; }