Example #1
0
int CEmsInfo::ReceiveStaRequestProcess(CProtocol &cProto)
{
    std::vector<char> vecPayload;
    CSessionInfo *cSessionInfo = NULL;
    CStmReqApi cDecApi;
    char *szPayload = NULL;
    char chFlag = 0;
    time_t tm = 0;

    tm = time(NULL);

    chFlag = cProto.GetFlag();

    if(chFlag != CProtocol::FLAG_REQUEST){
        STA_LOG(STA_ERR,"Invalid Flag(flag=%d)\n",chFlag);
        return STA_NOK;
    }

    cProto.GetPayload(vecPayload);

    cSessionInfo = new CSessionInfo();

    cSessionInfo->SetReceiveTime(tm);

    szPayload = new char[vecPayload.size() + 1];

    strncpy(szPayload, &vecPayload[0], vecPayload.size());
    szPayload[vecPayload.size()] = '\0';
    cSessionInfo->SetReceiveData(szPayload, vecPayload.size());

    DEBUG_LOG("RECEIVE DATA (Wait 3 time)\n");
    m_lstPendingQueue.push_back(cSessionInfo);

    return STA_OK;
}