コード例 #1
0
ファイル: Fragment.cpp プロジェクト: singhshobhit/RPL_Node
///////////////////////////////////////////////////////////////////////////////
///@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();
}
コード例 #2
0
ファイル: Fragment.cpp プロジェクト: singhshobhit/RPL_Node
///////////////////////////////////////////////////////////////////////////////
///@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();
}
コード例 #3
0
ファイル: mac_frame.cpp プロジェクト: pvanhorn/openthread
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;
}