Esempio n. 1
0
void IpcServer::sendKill(iviLink::Ipc::DirectionID * pDirID)
{
    LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
    std::string dieRequest(DIE_REQUEST);
    UInt8 * writeBuf = new UInt8(dieRequest.size());
    memcpy(writeBuf, dieRequest.c_str(), dieRequest.size());
    UInt8 * readBuf = new UInt8(1);
    UInt32 respSize = 1;
    timeval begin, end;
    double requestTime;
    gettimeofday(&begin, NULL);
    BaseError err = mIpc->request(mMsgIdGen.getNext(), writeBuf, dieRequest.size(), readBuf, respSize, pDirID);
    assert (!err.isNoError());
    LOG4CPLUS_INFO(mLogger, "Request returned an error as expected");
    assert (err.getCode() == CIpcError::ERROR_CONNECTION_LOST);
    LOG4CPLUS_INFO(mLogger, "Request returned an error and the error code is as expected");
    gettimeofday(&end, NULL);
    requestTime = (end.tv_sec - begin.tv_sec) * 1000.0;      // sec to ms
    requestTime += (end.tv_usec - begin.tv_usec) / 1000.0;   // us to ms
    std::ostringstream s;
    s << "(" << requestTime << ") ms";
    LOG4CPLUS_INFO(mLogger, "Time elapsed requesting: " + s.str());
    assert (requestTime < 100);
    LOG4CPLUS_INFO(mLogger, "Request's time is within the expected limits");
    delete writeBuf;
    delete readBuf;
}