/////////////////////////////////////////////////////////////////////////////// ///@author Ghervase Gabriel ///@brief < operator ///@retval true fragments are < ///@retval false fragments not < ///@param [in] p_rRight - fragment to compare to /////////////////////////////////////////////////////////////////////////////// bool CFragment::operator<(const CFragment& p_rRight) const { if ( (memcmp(GetSrcAddr(), p_rRight.GetSrcAddr(), p_rRight.GetAddressSize()) != 0) || GetMessageId() != p_rRight.GetMessageId() ) { NLOG_ERR ("[Fragment] - Cannot compare fragments belonging to different messages"); return false; } return GetFragmentId() < p_rRight.GetFragmentId(); }
/////////////////////////////////////////////////////////////////////////////// ///@author Ghervase Gabriel ///@brief == operator ///@retval true fragments are equal ///@retval false fragments are different ///@param [in] p_rRight - fragment to compare to /////////////////////////////////////////////////////////////////////////////// bool CFragment::operator==(const CFragment& p_rRight) const { return GetSrcAddr() == p_rRight.GetSrcAddr() && GetMessageId() == p_rRight.GetMessageId() && GetFragmentId() == p_rRight.GetFragmentId(); }
const char *Frame::ToInfoString(char *aBuf, uint16_t aSize) const { uint8_t type, commandId; Address src, dst; const char *typeStr; char stringBuffer[10]; char srcStringBuffer[Address::kAddressStringSize]; char dstStringBuffer[Address::kAddressStringSize]; type = GetType(); switch (type) { case kFcfFrameBeacon: typeStr = "Beacon"; break; case kFcfFrameData: typeStr = "Data"; break; case kFcfFrameAck: typeStr = "Ack"; break; case kFcfFrameMacCmd: if (GetCommandId(commandId) != OT_ERROR_NONE) { commandId = 0xff; } switch (commandId) { case kMacCmdDataRequest: typeStr = "Cmd(DataReq)"; break; case kMacCmdBeaconRequest: typeStr = "Cmd(BeaconReq)"; break; default: snprintf(stringBuffer, sizeof(stringBuffer), "Cmd(%d)", commandId); typeStr = stringBuffer; break; } break; default: snprintf(stringBuffer, sizeof(stringBuffer), "%d", type); typeStr = stringBuffer; break; } GetSrcAddr(src); GetDstAddr(dst); snprintf(aBuf, aSize, "len:%d, seqnum:%d, type:%s, src:%s, dst:%s, sec:%s, ackreq:%s", GetLength(), GetSequence(), typeStr, src.ToString(srcStringBuffer, sizeof(srcStringBuffer)), dst.ToString(dstStringBuffer, sizeof(dstStringBuffer)), GetSecurityEnabled() ? "yes" : "no", GetAckRequest() ? "yes" : "no"); return aBuf; }