fw.cpp

来源:互联网 发布:星际争霸2 免费知乎 编辑:程序博客网 时间:2024/04/27 09:18
 

#include "ace/os_include/os_time.h"
#include "platform/codec/codec_base.h"
#include "platform/protocol/http/http_forwarder.h"
#include "platform/protocol/http/http_common.h"
//#include "platform/key_value_pair.h"
#include "platform/dqueue.h"

#include "ib_http_client_fw.h"
#include "commonfuns.h"
#include <list>

#define MAX_CLIENT_NUM 1

ACE_INT32 CIBClientHttpForwarder::OnInit(void)
{
    ACE_INT32 nRet = CClientHttpForwarder::OnInit();
    if (nRet)
    {
        return IB_FAIL;
    }
    this->SetKeepAliveNum(KEEP_ALIVE_NUM);
   
    //每个forward都需要订购自己的去注册消息,以便由外部进行动态刷新
    //nRet = CDispatcherDemon::instance()->SubscribeMsg(this, PLATFORM::UNREGIST_TASK_MSG);
    return IB_SUCC;
}

void CIBClientHttpForwarder::saveHttpBuf(const char* szbuf, ACE_INT32 nLen)
{
    if (IBLog::isLogMsgCode())
    {
     if( !szbuf || nLen <= 0)
     {
      this->m_sHttpCodeBuf.clear();
      return;
     }
     m_sHttpCodeBuf.append(szbuf, (size_t)nLen); 
    }
    else
    {
        if (m_sHttpCodeBuf.size() > 0)
        {
            this->m_sHttpCodeBuf.clear();
        }
    }
}

void CIBClientHttpForwarder::OnFinishSend(CClientHttpHandler* pClientHttpHandler)
{
 ACE_UINT32 uiSessionID = pClientHttpHandler->GetSessionAddressKey().GetSessionID();
 CMyClientHttpReq* pClientHttpReq = (CMyClientHttpReq*)(pClientHttpHandler->GetHttpReq());
 if(pClientHttpReq)
 {
  CIBSoapHeader& reqSoapHead = pClientHttpReq->m_SoapHead;
  my_thread_string& strtraceUniqueID = *(reqSoapHead.traceUniqueID);
  my_thread_string& strKeyWord = *(reqSoapHead.reserv1);
  my_string& sOperationName = pClientHttpReq->sOperationName;
  my_string& sSerIP = pClientHttpReq->sServerIP;
  ACE_UINT32 iSerPort = pClientHttpReq->iServerPort;

  char* pszDevDesc = getDevDesc(*(reqSoapHead.destDeviceType));
  //转发给对应部件成功,记录接口日志
  IB_LOG_INTF(IBLOG_LVL_INFO, m_sHttpCodeBuf.c_str(), m_sHttpCodeBuf.size(), LOG_MSG_TYPE_ASCII,
   DFT_INTF_OUTREQ, strtraceUniqueID.c_str(),
   IB_PROTOCOL_HTTPXML, sOperationName.c_str(),
   *((reqSoapHead).sourceDeviceType), CResManagerDemon::instance()->GetSALocalIP().c_str(),
   *((reqSoapHead).destDeviceType), "", strKeyWord.c_str(),
   "", pClientHttpReq->m_sSPID.c_str(),
   pClientHttpReq->m_sServiceContentID.c_str(), pClientHttpReq->m_sUserID.c_str(),
   "SA send %s http request message[sessionID:%u] to %s[%s:%d] successfully.",
   sOperationName.c_str(), uiSessionID, pszDevDesc, sSerIP.c_str(), iSerPort);
 }

 //必须调用父类的同名接口,以便完成内存释放等工作
 CClientHttpForwarder::OnFinishSend(pClientHttpHandler);
}

void CIBClientHttpForwarder::OnTimerOut(CClientHttpHandler* pClientHttpHandler)
{
 //to do
 ACE_UINT32 uiSessionID = pClientHttpHandler->GetSessionAddressKey().GetSessionID();
 CMyClientHttpReq* pClientHttpReq = (CMyClientHttpReq*)(pClientHttpHandler->GetHttpReq());
 if(pClientHttpReq)
 {
  CIBSoapHeader& reqSoapHead = pClientHttpReq->m_SoapHead;
  my_thread_string& strtraceUniqueID = *(reqSoapHead.traceUniqueID);
  my_thread_string& strKeyWord = *(reqSoapHead.reserv1);
  my_string& sOperationName = pClientHttpReq->sOperationName;
  my_string& sSerIP = pClientHttpReq->sServerIP;
  ACE_UINT32 iSerPort = pClientHttpReq->iServerPort;

  //计算当前时间毫秒数及消息耗时
  struct timespec timeout;
  ACE_OS::clock_gettime(CLOCK_REALTIME, &timeout);
  ACE_UINT64 ulStopTime = IB_TO_MSECOND(timeout.tv_sec, timeout.tv_nsec);
  ACE_INT32 ulIntTime = (ACE_INT32)(ulStopTime - pClientHttpReq->ulBeginTime);

  char* pszDevDesc = getDevDesc(*(reqSoapHead.destDeviceType));
  //转发给对应部件超时,记录接口日志
  IB_LOG_INTF(IBLOG_LVL_ERROR, m_sHttpCodeBuf.c_str(), m_sHttpCodeBuf.size(), LOG_MSG_TYPE_ASCII,
   DFT_INTF_OUTREQ, strtraceUniqueID.c_str(),
   IB_PROTOCOL_HTTPXML, sOperationName.c_str(),
   *((reqSoapHead).sourceDeviceType), CResManagerDemon::instance()->GetSALocalIP().c_str(),
   *((reqSoapHead).destDeviceType), "", strKeyWord.c_str(),
   "", pClientHttpReq->m_sSPID.c_str(), pClientHttpReq->m_sServiceContentID.c_str(), pClientHttpReq->m_sUserID.c_str(),
   "SA receive %s http response message[sessionID:%u] from %s[%s:%d] timeout or error occurred, cost time:%d ms.",
   sOperationName.c_str(), uiSessionID, pszDevDesc, sSerIP.c_str(), iSerPort, ulIntTime);
 }
 //必须调用父类的处理函数
 CClientHttpForwarder::OnTimerOut(pClientHttpHandler);
}

void CIBClientHttpForwarder::OnConnectFailedProc(CHttpAsynchConnector* pHttpAsynchConnector)
{
 //to do
 //ACE_UINT32 uiSessionID = pHttpAsynchConnector->GetSessionAddressKey().GetSessionID();
 CMyClientHttpReq* pClientHttpReq = (CMyClientHttpReq*)(pHttpAsynchConnector->GetHttpReq());
 if(pClientHttpReq)
 {
  CIBSoapHeader& reqSoapHead = pClientHttpReq->m_SoapHead;
  char* pszDevDesc = getDevDesc(*(reqSoapHead.destDeviceType));
  my_string& sSerIP = pClientHttpReq->sServerIP;
  ACE_UINT32 iSerPort = pClientHttpReq->iServerPort;

  IB_LOG_RUN(IBLOG_LVL_WARNING, DFT_MSG_OTHER, RUN_LOGID_SYSTEM_EVENT, "Failed to connect to %s[%s:%u].", pszDevDesc, sSerIP.c_str(), iSerPort);
 }
 //必须调用父类的处理函数
 CClientHttpForwarder::OnConnectFailedProc(pHttpAsynchConnector);
}

ACE_INT32 CIBClientHttpForwarder::OnHttpResponseProc(CClientHttpReq* rHttpReq, CClientHttpRsp& rHttpRsp, const CSessionAddressKey& rSessionAddressKey)
{
    //ACE_UINT32 uiSessionID = rSessionAddressKey.GetSessionID();
    ACE_UINT32 uiReqMsgID = 0;

    // 根据传过来的seesion id计算出 msgid,然后得出是那个对应的response..
 if(!rHttpReq)
 {
  return IB_FAIL;
 }
 uiReqMsgID = ((CMyClientHttpReq*)rHttpReq)->iMsgId;
    uiReqMsgID += 0x10000000; //......msgid

    //cms
    if(Sync_httpmsg::CSyncDataNotifyResponse::MSG_ID == uiReqMsgID)
    {
        Sync_httpmsg::CSyncDataNotifyResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }      
    else if(Sync_httpmsg::CDataSourceSyncReceiptResponse::MSG_ID == uiReqMsgID)
    {
        Sync_httpmsg::CDataSourceSyncReceiptResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }
    //dna
    else if(DNA_HTTPMSG::CgetstcreclistforuserResponse::MSG_ID == uiReqMsgID)
    {
        DNA_HTTPMSG::CgetstcreclistforuserResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }
    else if(DNA_HTTPMSG::CgetreclistbasedoninstResponse::MSG_ID == uiReqMsgID)
    {
        DNA_HTTPMSG::CgetreclistbasedoninstResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }
    else if(DNA_HTTPMSG::CgetreclistofitembasedcorResponse::MSG_ID == uiReqMsgID)
    {
        DNA_HTTPMSG::CgetreclistofitembasedcorResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }
    else if(DNA_HTTPMSG::CgetsimilaritemResponse::MSG_ID == uiReqMsgID)
    {
        DNA_HTTPMSG::CgetsimilaritemResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }    
    else if(DNA_HTTPMSG::CgetsimilarattrResponse::MSG_ID == uiReqMsgID)
    {
        DNA_HTTPMSG::CgetsimilarattrResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }
    //drmc
    else if(DRMC_HTTPMSG::CRightReqResponse::MSG_ID == uiReqMsgID)
    {
        DRMC_HTTPMSG::CRightReqResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }
    //smsc
    else if(SMSC_HTTPMSG::CSetSmsServiceFlagResponse::MSG_ID == uiReqMsgID)
    {
        SMSC_HTTPMSG::CSetSmsServiceFlagResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }
    //streaming
    else if(STREAMING_HTTPMSG::CgetserverURLResponse::MSG_ID == uiReqMsgID)
    {
        STREAMING_HTTPMSG::CgetserverURLResponse msgResponse;
        HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
    }
 //smart
 else if(MDSP_HTTPMSG::CGetTokenResponse::MSG_ID == uiReqMsgID)
 {
  MDSP_HTTPMSG::CGetTokenResponse msgResponse;
  HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
 }
 //boss
 else if(Sync_httpmsg::CDataSyncTransferResponse::MSG_ID == uiReqMsgID)
 {
  Sync_httpmsg::CDataSyncTransferResponse msgResponse;
  HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
 }
 else if(Sync_httpmsg::CBossDataSyncResponse::MSG_ID == uiReqMsgID)
 {
  Sync_httpmsg::CBossDataSyncResponse msgResponse;
  HttpProcessFunc(msgResponse, rHttpReq, rHttpRsp, rSessionAddressKey);
 }
   
    return IB_SUCC;
}

ACE_INT32 CIBClientHttpForwarder::OnHttpResponseNotWholeBodyImpl(CClientHttpHandler* pClientHttpHandler)
{
    return this->OnHttpResponseProc(pClientHttpHandler->GetHttpReq(), pClientHttpHandler->GetClientHttpRspRef(), pClientHttpHandler->GetSessionAddressKey());
}

ACE_INT32 CIBClientHttpForwarder::OnHttpResponseNoBodyImpl(CClientHttpHandler* pClientHttpHandler)
{
    return this->OnHttpResponseProc(pClientHttpHandler->GetHttpReq(), pClientHttpHandler->GetClientHttpRspRef(), pClientHttpHandler->GetSessionAddressKey());
}

ACE_INT32 CIBClientHttpForwarder::OnHttpResponseImpl(CClientHttpHandler* pClientHttpHandler)
{
    return this->OnHttpResponseProc(pClientHttpHandler->GetHttpReq(), pClientHttpHandler->GetClientHttpRspRef(), pClientHttpHandler->GetSessionAddressKey() );
}

void CIBClientHttpForwarder::handleRequest(Sync_httpmsg::CSyncDataNotifyRequest& msgRequest, CHttpReq* pHttpReq)
{
    my_thread_string strtmp;
 PLATFORM::CKeyValueList& kvList = pHttpReq->GetKeyValueListRef();
 PLATFORM::CKeyValuePair* pr;

 //setting soap header
 pr = kvList.MakePair( ((*(msgRequest.property_SoapHeader)).version).GetLocalNameRef(), *((msgRequest.get_property_SoapHeader_ref()).version) );
    kvList.PushBack(pr);

    pr = kvList.MakePair( ((*(msgRequest.property_SoapHeader)).traceUniqueID).GetLocalNameRef(), *((msgRequest.get_property_SoapHeader_ref()).traceUniqueID) );
    kvList.PushBack(pr);

    strtmp = *(msgRequest.get_property_SoapHeader_ref()).sourceDeviceType;
    pr = kvList.MakePair( ((*(msgRequest.property_SoapHeader)).sourceDeviceType).GetLocalNameRef(), strtmp);
    kvList.PushBack(pr);

    pr = kvList.MakePair( ((*(msgRequest.property_SoapHeader)).sourceDeviceCode).GetLocalNameRef(), *((msgRequest.get_property_SoapHeader_ref()).sourceDeviceCode) );
    kvList.PushBack(pr);

    strtmp = *(msgRequest.get_property_SoapHeader_ref()).destDeviceType;
    pr = kvList.MakePair( ((*(msgRequest.property_SoapHeader)).destDeviceType).GetLocalNameRef(),  strtmp);
    kvList.PushBack(pr);

    pr = kvList.MakePair( ((*(msgRequest.property_SoapHeader)).destDeviceCode).GetLocalNameRef(), *((msgRequest.get_property_SoapHeader_ref()).destDeviceCode) );
    kvList.PushBack(pr);

    pr = kvList.MakePair( ((*(msgRequest.property_SoapHeader)).authenticatorSource).GetLocalNameRef(), *((msgRequest.get_property_SoapHeader_ref()).authenticatorSource) );
    kvList.PushBack(pr);

    pr = kvList.MakePair( ((*(msgRequest.property_SoapHeader)).timeStamp).GetLocalNameRef(), *((msgRequest.get_property_SoapHeader_ref()).timeStamp) );
    kvList.PushBack(pr);

    //设置业务参数
    pr = kvList.MakePair( ((*(msgRequest.property_syncDataNotifyReq)).property_sessionID).GetLocalNameRef(), *((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_sessionID_ref()));
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((*(msgRequest.property_syncDataNotifyReq)).property_dataSourceDevType).GetLocalNameRef(), *((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataSourceDevType_ref()) );
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((*(msgRequest.property_syncDataNotifyReq)).property_dataSourceDevCode).GetLocalNameRef(), *((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataSourceDevCode_ref()));
    kvList.PushBack(pr);

    strtmp = (msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataType_ref();
    pr = kvList.MakePair( ((*(msgRequest.property_syncDataNotifyReq)).property_dataType).GetLocalNameRef(), strtmp);
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((*(msgRequest.property_syncDataNotifyReq)).property_actionType).GetLocalNameRef(), *((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_actionType_ref()));
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((*(msgRequest.property_syncDataNotifyReq)).property_needReceipt).GetLocalNameRef(), *((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_needReceipt_ref()));
    kvList.PushBack(pr);

    strtmp = (msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataLocation_ref() ;
    pr = kvList.MakePair( ((*(msgRequest.property_syncDataNotifyReq)).property_dataLocation).GetLocalNameRef(), strtmp);
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((*(msgRequest.property_syncDataNotifyReq)).property_dataFileUrl).GetLocalNameRef(), *((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataFileUrl_ref()) );
    kvList.PushBack(pr);
    //setting attchment body
    ACE_UINT32 i_length = (*((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataDes_ref())).GetSize() ;
    if(i_length > 0)
    {
        pHttpReq->GetBodyRef().SetSize( i_length );
  //附件的内存由平台释放
        pHttpReq->GetBodyRef().SetBuffer( (*((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataDes_ref())).GetBuffer() );
    }

}

void CIBClientHttpForwarder::handleRequest(Sync_httpmsg::CDataSourceSyncReceiptRequest& msgRequest, CHttpReq* pHttpReq)
{
 my_thread_string strtmp;
 PLATFORM::CKeyValueList& kvList = pHttpReq->GetKeyValueListRef();
 PLATFORM::CKeyValuePair* pr;
   
 //setting soap header
    pr = kvList.MakePair( (((*(msgRequest.property_SoapHeader)).version).GetLocalNameRef()), (*((msgRequest.get_property_SoapHeader_ref()).version)) );
    kvList.PushBack(pr);

    pr = kvList.MakePair( (((*(msgRequest.property_SoapHeader)).traceUniqueID).GetLocalNameRef()), (*((msgRequest.get_property_SoapHeader_ref()).traceUniqueID)) );
    kvList.PushBack(pr);

    strtmp = *(msgRequest.get_property_SoapHeader_ref()).sourceDeviceType;
    pr = kvList.MakePair( (((*(msgRequest.property_SoapHeader)).sourceDeviceType).GetLocalNameRef()), strtmp);
    kvList.PushBack(pr);

    pr = kvList.MakePair( (((*(msgRequest.property_SoapHeader)).sourceDeviceCode).GetLocalNameRef()), (*((msgRequest.get_property_SoapHeader_ref()).sourceDeviceCode)) );
    kvList.PushBack(pr);

    strtmp = *(msgRequest.get_property_SoapHeader_ref()).destDeviceType;
    pr = kvList.MakePair( (((*(msgRequest.property_SoapHeader)).destDeviceType).GetLocalNameRef()), strtmp);
    kvList.PushBack(pr);

    pr = kvList.MakePair( (((*(msgRequest.property_SoapHeader)).destDeviceCode).GetLocalNameRef()), (*((msgRequest.get_property_SoapHeader_ref()).destDeviceCode)));

    kvList.PushBack(pr);
    pr = kvList.MakePair( (((*(msgRequest.property_SoapHeader)).authenticatorSource).GetLocalNameRef()), (*((msgRequest.get_property_SoapHeader_ref()).authenticatorSource)) );
    kvList.PushBack(pr);

    pr = kvList.MakePair( (((*(msgRequest.property_SoapHeader)).timeStamp).GetLocalNameRef()), (*((msgRequest.get_property_SoapHeader_ref()).timeStamp)) );
    kvList.PushBack(pr);

    //设置业务参数
    pr = kvList.MakePair( ((msgRequest.property_dataFileUrl).GetLocalNameRef()), (*(msgRequest.get_property_dataFileUrl_ref())) );
    kvList.PushBack(pr);
    strtmp = msgRequest.get_property_dataLocation_ref();
    pr = kvList.MakePair( ((msgRequest.property_dataLocation).GetLocalNameRef()), strtmp);
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((msgRequest.property_syncDevCode).GetLocalNameRef()), (*(msgRequest.get_property_syncDevCode_ref())) );
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((msgRequest.property_syncDevType).GetLocalNameRef()), (*(msgRequest.get_property_syncDevType_ref())) );
    kvList.PushBack(pr);
    strtmp = msgRequest.get_property_dataType_ref();
    pr = kvList.MakePair( ((msgRequest.property_dataType).GetLocalNameRef()), strtmp);
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((msgRequest.property_sessionID).GetLocalNameRef()), (*(msgRequest.get_property_sessionID_ref())) );
    kvList.PushBack(pr);
    pr = kvList.MakePair( ((msgRequest.property_status).GetLocalNameRef()), (*(msgRequest.get_property_status_ref())) );
    kvList.PushBack(pr);
    //setting attchment body
    ACE_UINT32 i_length = (*(msgRequest.get_property_dataDes_ref())).GetSize() ;
    if(i_length > 0)
    {
        pHttpReq->GetBodyRef().SetSize(i_length );
        pHttpReq->GetBodyRef().SetBuffer( (*(msgRequest.get_property_dataDes_ref())).GetBuffer() );
    }

}

void CIBClientHttpForwarder::handleRequest(Sync_httpmsg::CBossDataSyncRequest& msgRequest, CHttpReq* pHttpReq)
{
 my_thread_string strtmp;
 PLATFORM::CKeyValueList& kvList = pHttpReq->GetKeyValueListRef();
 PLATFORM::CKeyValuePair* pr;

 //set special content-type for boss
 pr = kvList.MakePair("content-type", "application/x-www-form-urlencoded");
 kvList.PushBack(pr);

 //设置业务参数
 
 //setting attchment body
 ACE_UINT32 i_length = (*(msgRequest.get_property_bossDataSyncReq_ref().get_property_dataDesIn_ref())).GetSize() ;
 if(i_length > 0)
 {
  pHttpReq->GetBodyRef().SetSize(i_length );
  pHttpReq->GetBodyRef().SetBuffer( (*(msgRequest.get_property_bossDataSyncReq_ref().get_property_dataDesIn_ref())).GetBuffer() );
 }

}

void CIBClientHttpForwarder::handleRequest(Sync_httpmsg::CDataSyncTransferRequest& msgRequest, CHttpReq* pHttpReq)
{
 my_thread_string strtmp;
 PLATFORM::CKeyValueList& kvList = pHttpReq->GetKeyValueListRef();
 PLATFORM::CKeyValuePair* pr;

 //设置业务参数
 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_BIPCode_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_BIPCode.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_BIPCode_ref()));
  kvList.PushBack(pr);
 }

 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_activityCode_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_activityCode.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_activityCode_ref()));
  kvList.PushBack(pr);
 }

 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_routeType_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_routeType.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_routeType_ref()));
  kvList.PushBack(pr);
 }

 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_routeValue_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_routeValue.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_routeValue_ref()));
  kvList.PushBack(pr);
 }

 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_procID_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_procID.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_procID_ref()));
  kvList.PushBack(pr);
 }

 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_transIDO_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_transIDO.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_transIDO_ref()));
  kvList.PushBack(pr);
 }

 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_transIDH_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_transIDH.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_transIDH_ref()));
  kvList.PushBack(pr);
 }

 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_processTime_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_processTime.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_processTime_ref()));
  kvList.PushBack(pr);
 }

 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_origDomain_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_origDomain.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_origDomain_ref()));
  kvList.PushBack(pr);
 }
 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_homeDomain_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_homeDomain.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_homeDomain_ref()));
  kvList.PushBack(pr);
 }
 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_testFlag_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_testFlag.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_testFlag_ref()));
  kvList.PushBack(pr);
 }
 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_msgSender_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_msgSender.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_msgSender_ref()));
  kvList.PushBack(pr);
 }
 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_msgReceiver_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_msgReceiver.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_msgReceiver_ref()));
  kvList.PushBack(pr);
 }
 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_svcContVer_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_svcContVer.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_svcContVer_ref()));
  kvList.PushBack(pr);
 }
 if(msgRequest.get_property_dataSyncTransferReq_ref().get_property_bIPVer_ref().Exist())
 {
  pr = kvList.MakePair(msgRequest.get_property_dataSyncTransferReq_ref().property_bIPVer.GetLocalNameRef(), *(msgRequest.get_property_dataSyncTransferReq_ref().get_property_bIPVer_ref()));
  kvList.PushBack(pr);
 }


 //setting attchment body
 ACE_UINT32 i_length = (*(msgRequest.get_property_dataSyncTransferReq_ref().get_property_dataDesToSIS_ref())).GetSize() ;
 if(i_length > 0)
 {
  pHttpReq->GetBodyRef().SetSize(i_length );
  pHttpReq->GetBodyRef().SetBuffer( (*(msgRequest.get_property_dataSyncTransferReq_ref().get_property_dataDesToSIS_ref())).GetBuffer() );
 }

}

void CIBClientHttpForwarder::handleRequest(DNA_HTTPMSG::CgetstcreclistforuserRequest& msgRequest, CHttpReq* pHttpReq)
{
 pHttpReq->GetHttpReqMethodRef().SetMethodName(IB_HTTP_GET);
    my_thread_string& parameter = pHttpReq->GetHttpReqMethodRef().GetURLRef();
 parameter = msgRequest.get_property_urlInfo_ref().get_property_url_ref();
 parameter += IB_HTTP_ASK_CHAR;
 //opaccount
 parameter += msgRequest.property_opaccount.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_opaccount_ref();
 parameter += IB_HTTP_AND_CHAR;
 //oppwd
 parameter += msgRequest.property_oppwd.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_oppwd_ref();
 parameter += IB_HTTP_AND_CHAR;
 //userid
 parameter += msgRequest.property_userid.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_userid_ref();
 parameter += IB_HTTP_AND_CHAR;
 //howmany
 parameter += msgRequest.property_howmany.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_howmany_ref();
 //traceuniqueid
 if( true == msgRequest.get_property_traceuniqueid_ref().Exist() )
 {
  parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_traceuniqueid.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_traceuniqueid_ref()));
 }
 //contenttype
 if( true == msgRequest.get_property_contenttype_ref().Exist() )
 {
        parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_contenttype.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_contenttype_ref()));
 }

 //pHttpReq->GetHttpReqMethodRef().SetURL(parameter.c_str());
}

void CIBClientHttpForwarder::handleRequest(DNA_HTTPMSG::CgetreclistbasedoninstRequest& msgRequest, CHttpReq* pHttpReq)
{
 pHttpReq->GetHttpReqMethodRef().SetMethodName(IB_HTTP_GET);
    my_thread_string& parameter = pHttpReq->GetHttpReqMethodRef().GetURLRef();
 parameter = msgRequest.get_property_urlInfo_ref().get_property_url_ref();
 parameter += IB_HTTP_ASK_CHAR;
 //opaccount
 parameter += msgRequest.property_opaccount.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_opaccount_ref();
 parameter += IB_HTTP_AND_CHAR;
 //oppwd
 parameter += msgRequest.property_oppwd.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_oppwd_ref();
 parameter += IB_HTTP_AND_CHAR;
 //userid
 parameter += msgRequest.property_userid.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_userid_ref();
 parameter += IB_HTTP_AND_CHAR;
 //howmany
 parameter += msgRequest.property_howmany.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_howmany_ref();
 //traceuniqueid
 if( true == msgRequest.get_property_traceuniqueid_ref().Exist() )
 {
  parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_traceuniqueid.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_traceuniqueid_ref()));
 }
 //contenttype
 if( true == msgRequest.get_property_contenttype_ref().Exist() )
 {
  parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_contenttype.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_contenttype_ref()));
 }

 //pHttpReq->GetHttpReqMethodRef().SetURL(parameter.c_str());
}

void CIBClientHttpForwarder::handleRequest(DNA_HTTPMSG::CgetreclistofitembasedcorRequest& msgRequest, CHttpReq* pHttpReq)
{
 pHttpReq->GetHttpReqMethodRef().SetMethodName(IB_HTTP_GET);
    my_thread_string& parameter = pHttpReq->GetHttpReqMethodRef().GetURLRef();
 parameter = msgRequest.get_property_urlInfo_ref().get_property_url_ref();
 parameter += IB_HTTP_ASK_CHAR;
 //opaccount
 parameter += msgRequest.property_opaccount.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_opaccount_ref();
 parameter += IB_HTTP_AND_CHAR;
 //oppwd
 parameter += msgRequest.property_oppwd.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_oppwd_ref();
 parameter += IB_HTTP_AND_CHAR;
 //userid
 if( true == msgRequest.get_property_userid_ref().Exist() )
 {
  parameter += msgRequest.property_userid.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_userid_ref()));
  parameter += IB_HTTP_AND_CHAR;
 }
 //howmany
 parameter += msgRequest.property_howmany.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_howmany_ref();
 //curitems
 CODE_BASE::Thread_List< CODE_BASE::Pascal_String >::iterator itr = (msgRequest.get_property_curitems_ref()).begin();
 for(;itr != (msgRequest.get_property_curitems_ref()).end(); ++itr)
 {
  parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_curitems.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += itr->c_str();
 }
 //traceuniqueid
 if( true == msgRequest.get_property_traceuniqueid_ref().Exist() )
 {
        parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_traceuniqueid.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_traceuniqueid_ref()));
 }
 //contenttype
 if( true == msgRequest.get_property_contenttype_ref().Exist() )
 {
  parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_contenttype.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_contenttype_ref()));
 }

 //pHttpReq->GetHttpReqMethodRef().SetURL(parameter.c_str());
}

void CIBClientHttpForwarder::handleRequest(DNA_HTTPMSG::CgetsimilaritemRequest& msgRequest, CHttpReq* pHttpReq)
{
 pHttpReq->GetHttpReqMethodRef().SetMethodName(IB_HTTP_GET);
    my_thread_string& parameter = pHttpReq->GetHttpReqMethodRef().GetURLRef();
 parameter = msgRequest.get_property_urlInfo_ref().get_property_url_ref();
 parameter += IB_HTTP_ASK_CHAR;
 //opaccount
 parameter += msgRequest.property_opaccount.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_opaccount_ref();
 parameter += IB_HTTP_AND_CHAR;
 //oppwd
 parameter += msgRequest.property_oppwd.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_oppwd_ref();
 parameter += IB_HTTP_AND_CHAR;
 //itemid
 parameter += msgRequest.property_itemid.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_itemid_ref();
 parameter += IB_HTTP_AND_CHAR;
 //howmany
 parameter += msgRequest.property_howmany.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_howmany_ref();
 //traceuniqueid
 if( true == msgRequest.get_property_traceuniqueid_ref().Exist() )
 {
     parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_traceuniqueid.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_traceuniqueid_ref()));
 }
    //contenttype
    if( true == msgRequest.get_property_contenttype_ref().Exist() )
    {
        parameter += IB_HTTP_AND_CHAR;
        parameter += msgRequest.property_contenttype.GetLocalNameRef();
        parameter += IB_HTTP_EQUAL_CHAR;
        parameter += (*(msgRequest.get_property_contenttype_ref()));
    }

 //pHttpReq->GetHttpReqMethodRef().SetURL(parameter.c_str());
}

void CIBClientHttpForwarder::handleRequest(DNA_HTTPMSG::CgetsimilarattrRequest& msgRequest, CHttpReq* pHttpReq)
{
 pHttpReq->GetHttpReqMethodRef().SetMethodName(IB_HTTP_GET);
 //my_thread_string parameter;
    my_thread_string& parameter = pHttpReq->GetHttpReqMethodRef().GetURLRef();
 parameter = msgRequest.get_property_urlInfo_ref().get_property_url_ref();
 parameter += IB_HTTP_ASK_CHAR;
 //opaccount
 parameter += msgRequest.property_opaccount.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_opaccount_ref();
 parameter += IB_HTTP_AND_CHAR;
 //oppwd
 parameter += msgRequest.property_oppwd.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_oppwd_ref();
 parameter += IB_HTTP_AND_CHAR;
 //attrid
 parameter += msgRequest.property_attrid.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_attrid_ref();
 parameter += IB_HTTP_AND_CHAR;
 //attrvalue
 parameter += msgRequest.property_attrvalue.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_attrvalue_ref();
 parameter += IB_HTTP_AND_CHAR;
 //howmany
 parameter += msgRequest.property_howmany.GetLocalNameRef();
 parameter += IB_HTTP_EQUAL_CHAR;
 parameter += msgRequest.get_property_howmany_ref();
 //traceuniqueid
 if( true == msgRequest.get_property_traceuniqueid_ref().Exist() )
 {
     parameter += IB_HTTP_AND_CHAR;
  parameter += msgRequest.property_traceuniqueid.GetLocalNameRef();
  parameter += IB_HTTP_EQUAL_CHAR;
  parameter += (*(msgRequest.get_property_traceuniqueid_ref()));
 }
    //contenttype
    if( true == msgRequest.get_property_contenttype_ref().Exist() )
    {
        parameter += IB_HTTP_AND_CHAR;
        parameter += msgRequest.property_contenttype.GetLocalNameRef();
        parameter += IB_HTTP_EQUAL_CHAR;
        parameter += (*(msgRequest.get_property_contenttype_ref()));
    }
 //pHttpReq->GetHttpReqMethodRef().SetURL(parameter.c_str());
}

void CIBClientHttpForwarder::handleRequest(DRMC_HTTPMSG::CRightReqRequest& msgRequest, CHttpReq* pHttpReq)
{
    my_thread_string& url = pHttpReq->GetHttpReqMethodRef().GetURLRef();
    url = msgRequest.get_property_urlInfo_ref().get_property_url_ref();
    url += IB_HTTP_ASK_CHAR;
    //Time
    url += msgRequest.property_time.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += msgRequest.get_property_time_ref();
    url += IB_HTTP_AND_CHAR;
    //transactionID
    url += msgRequest.property_transactionID.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += msgRequest.get_property_transactionID_ref();
    url += IB_HTTP_AND_CHAR;
    //ISMPID
    url += msgRequest.property_ISMPID.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += msgRequest.get_property_ISMPID_ref();
    url += IB_HTTP_AND_CHAR;
    //portalID
    url += msgRequest.property_portalID.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += msgRequest.get_property_portalID_ref();
    url += IB_HTTP_AND_CHAR;
    //contentID
    url += msgRequest.property_contentID.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += msgRequest.get_property_contentID_ref();
    url += IB_HTTP_AND_CHAR;
    //deliveryMethod
    url += msgRequest.property_deliveryMethod.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
 url += msgRequest.get_property_deliveryMethod_ref();
    url += IB_HTTP_AND_CHAR;
    //OAType
    url += msgRequest.property_OAType.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    if( true == msgRequest.get_property_OAType_ref().Exist() )
    {
        url += *(msgRequest.get_property_OAType_ref());
    }
    url += IB_HTTP_AND_CHAR;
    //OAOpr
    url += msgRequest.property_OAOpr.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += (*msgRequest.get_property_OAOpr_ref());
    url += IB_HTTP_AND_CHAR;
    //OA
    url += msgRequest.property_OA.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += msgRequest.get_property_OA_ref();
    url += IB_HTTP_AND_CHAR;
    //DAType
    url += msgRequest.property_DAType.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    if( true == msgRequest.get_property_DAType_ref().Exist() )
    {
        url += *(msgRequest.get_property_DAType_ref());
    }
    url += IB_HTTP_AND_CHAR;
    //DAOpr
    url += msgRequest.property_DAOpr.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += (*msgRequest.get_property_DAOpr_ref());
    url += IB_HTTP_AND_CHAR;
    //DA
    url += msgRequest.property_DA.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += (*msgRequest.get_property_DA_ref());
    url += IB_HTTP_AND_CHAR;
    //FAType
    url +=  msgRequest.property_FAType.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    if( true == msgRequest.get_property_FAType_ref().Exist() )
    {
        url += *(msgRequest.get_property_FAType_ref());
    }
    url += IB_HTTP_AND_CHAR;
    //FAOpr
    url += msgRequest.property_FAOpr.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += (*msgRequest.get_property_FAOpr_ref());
    url += IB_HTTP_AND_CHAR;
    //FA
    url += msgRequest.property_FA.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += (*msgRequest.get_property_FA_ref());
    url += IB_HTTP_AND_CHAR;
    //serviceIdType
    url += msgRequest.property_serviceIdType.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    if( true == msgRequest.get_property_serviceIdType_ref().Exist() )
    {
        url += *(msgRequest.get_property_serviceIdType_ref());
    }
    url += IB_HTTP_AND_CHAR;
    //spId
    url += msgRequest.property_spId.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += (*msgRequest.get_property_spId_ref());
    url += IB_HTTP_AND_CHAR;
    //productId
    url += msgRequest.property_productId.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += (*msgRequest.get_property_productId_ref());
    url += IB_HTTP_AND_CHAR;
    //serType
    url += msgRequest.property_serType.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    if( true == msgRequest.get_property_serType_ref().Exist() )
    {
        url += *(msgRequest.get_property_serType_ref());
    }
    url += IB_HTTP_AND_CHAR;
    //confirm
    url += msgRequest.property_confirm.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    if( true == msgRequest.get_property_confirm_ref().Exist() )
    {
        url += *(msgRequest.get_property_confirm_ref());
    }
    url += IB_HTTP_AND_CHAR;
    //report
    url += msgRequest.property_report.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    if( true == msgRequest.get_property_report_ref().Exist() )
    {
        url += *(msgRequest.get_property_report_ref());
    }
    url += IB_HTTP_AND_CHAR;
    //securityID
    url += msgRequest.property_securityID.GetLocalNameRef();
    url += IB_HTTP_EQUAL_CHAR;
    url += msgRequest.get_property_securityID_ref();
    //pHttpReq->GetHttpReqMethodRef().SetURL(url);
}

void CIBClientHttpForwarder::handleRequest(SMSC_HTTPMSG::CSetSmsServiceFlagRequest& msgRequest, CHttpReq* pHttpReq)
{
    //PLATFORM::CKeyValuePair pr;
    //pr.Set(((msgRequest.property_commandID).GetLocalName()), (IntToStr(msgRequest.get_property_commandID_ref()).c_str()));  
    //pHttpReq->GetKeyValueListRef().push_back(pr);    //should be push every time   
    //pr.Set(((msgRequest.property_dataStruct).GetLocalName()), (msgRequest.get_property_dataStruct_ref()).c_str());
    //pHttpReq->GetKeyValueListRef().push_back(pr);    //should be push every time
    //pr.Set(((msgRequest.property_serviceflag).GetLocalName()), (IntToStr(msgRequest.get_property_serviceflag_ref()).c_str()));
    //pHttpReq->GetKeyValueListRef().push_back(pr);    //should be push every time
 //setting attchment body
    ACE_UINT32 i_length = (msgRequest.get_property_dataStruct_ref()).GetSize() ;
    if(i_length > 0)
    {
        pHttpReq->GetBodyRef().SetSize(i_length );
        pHttpReq->GetBodyRef().SetBuffer( (msgRequest.get_property_dataStruct_ref()).GetBuffer() );
    }
}

void CIBClientHttpForwarder::handleRequest(STREAMING_HTTPMSG::CgetserverURLRequest& msgRequest, CHttpReq* pHttpReq)
{
//     PLATFORM::CKeyValuePair pr;
//     my_thread_string sTmp = *(msgRequest.get_property_audioid_ref());
//     pr.Set(msgRequest.property_audioid.GetLocalNameRef(), sTmp);
//     pr.Set(msgRequest.property_msisdn.GetLocalNameRef(), msgRequest.get_property_msisdn_ref());  
//     pr.Set(msgRequest.property_mdspid.GetLocalNameRef(), (*(msgRequest.get_property_mdspid_ref())));
//     pr.Set(msgRequest.property_spid.GetLocalNameRef(), msgRequest.get_property_spid_ref());
//     pr.Set(msgRequest.property_sid.GetLocalNameRef(), (*(msgRequest.get_property_sid_ref())));
//     sTmp = msgRequest.get_property_nettype_ref();
//     pr.Set(msgRequest.property_nettype.GetLocalNameRef(), sTmp);
//     pr.Set(msgRequest.property_Channel_ID.GetLocalNameRef(), (*(msgRequest.get_property_Channel_ID_ref())));
//     pr.Set(msgRequest.property_timestamp.GetLocalNameRef(), (*(msgRequest.get_property_timestamp_ref())));
//     pr.Set(msgRequest.property_clientip.GetLocalNameRef(), (*(msgRequest.get_property_clientip_ref())));
//     pr.Set(msgRequest.property_MDN2000.GetLocalNameRef(), (*(msgRequest.get_property_MDN2000_ref())));
}


void CIBClientHttpForwarder::handleRequest(MDSP_HTTPMSG::CGetTokenRequest& msgRequest, CHttpReq* pHttpReq)
{
 //setting attchment body
 ACE_UINT32 i_length = (*((msgRequest.get_property_getTokenReq_ref()).get_property_dataDes_ref())).GetSize() ;
 if(i_length > 0)
 {
  pHttpReq->GetBodyRef().SetSize( i_length );
  //附件的内存由平台释放
  pHttpReq->GetBodyRef().SetBuffer( (*((msgRequest.get_property_getTokenReq_ref()).get_property_dataDes_ref())).GetBuffer() );
 }
}


void CIBClientHttpForwarder::handleResponse(Sync_httpmsg::CSyncDataNotifyResponse& msgResponse, CClientHttpRsp& rHttpRsp)
{
    PLATFORM::CKeyValueList& rkeyList = (const_cast<CClientHttpRsp&>(rHttpRsp)).GetKeyValueListRef();
    for(PLATFORM::CKeyValueList::iterator p = rkeyList.begin(); p != rkeyList.end(); ++p)
    {  
        // get what you need according relative value..
        my_thread_string sKey = (*p).GetKeyRef();
        my_thread_string sValue = (*p).GetValueRef();
           
        if(sKey == ((msgResponse.get_property_syncDataNotifyRsp_ref()).property_resultCode).GetLocalName() )
        {
            (msgResponse.get_property_syncDataNotifyRsp_ref()).get_property_resultCode_ref().Exist(true);
            *((msgResponse.get_property_syncDataNotifyRsp_ref()).get_property_resultCode_ref())= sValue.c_str();
        }
        if(sKey == ((msgResponse.get_property_syncDataNotifyRsp_ref()).property_resultMessage).GetLocalName())
        {
            (msgResponse.get_property_syncDataNotifyRsp_ref()).get_property_resultMessage_ref().Exist(true);
            *((msgResponse.get_property_syncDataNotifyRsp_ref()).get_property_resultMessage_ref())= sValue.c_str();
        }
    }
}

void CIBClientHttpForwarder::handleResponse(Sync_httpmsg::CDataSourceSyncReceiptResponse& msgResponse, CClientHttpRsp& rHttpRsp)
{
    PLATFORM::CKeyValueList& rkeyList = (const_cast<CClientHttpRsp&>(rHttpRsp)).GetKeyValueListRef();
    for(PLATFORM::CKeyValueList::iterator p = rkeyList.begin(); p != rkeyList.end(); ++p)
    {  
        // get what you need according relative value..
        my_thread_string sKey = (*p).GetKeyRef();
        my_thread_string sValue = (*p).GetValueRef();
   
        if(sKey == (msgResponse.property_resultCode).GetLocalName() )
        {
             msgResponse.get_property_resultCode_ref().Exist(true);
            *(msgResponse.get_property_resultCode_ref())= sValue.c_str();
        }
        if(sKey== (msgResponse.property_resultMessage).GetLocalName())
        {
            msgResponse.get_property_resultMessage_ref().Exist(true);
            *(msgResponse.get_property_resultMessage_ref())= sValue.c_str();
        }
    }
}

void CIBClientHttpForwarder::handleResponse(Sync_httpmsg::CBossDataSyncResponse& msgResponse, CClientHttpRsp& rHttpRsp)
{
 if(0 != rHttpRsp.GetBodyRef().GetSize())  // attachments
 {
  msgResponse.get_property_bossDataSyncRsp_ref().get_property_dataDesOut_ref().Exist(true);
  (*(msgResponse.get_property_bossDataSyncRsp_ref().get_property_dataDesOut_ref())).SetSize( rHttpRsp.GetBodyRef().GetSize() );
  (*(msgResponse.get_property_bossDataSyncRsp_ref().get_property_dataDesOut_ref())).SetBuffer( rHttpRsp.GetBodyRef().GetBuffer() );
 }
}

void CIBClientHttpForwarder::handleResponse(Sync_httpmsg::CDataSyncTransferResponse& msgResponse, CClientHttpRsp& rHttpRsp)
{
 PLATFORM::CKeyValueList& rkeyList = (const_cast<CClientHttpRsp&>(rHttpRsp)).GetKeyValueListRef();
 for(PLATFORM::CKeyValueList::iterator p = rkeyList.begin(); p != rkeyList.end(); ++p)
 {  
  // get what you need according relative value..
  my_thread_string sKey = (*p).GetKeyRef();
  my_thread_string sValue = (*p).GetValueRef();

  if(sKey == (msgResponse.get_property_dataSyncTransferRsp_ref().property_BIPCode).GetLocalName() )
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_BIPCode_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_BIPCode_ref())= sValue.c_str();
  }
  if(sKey == (msgResponse.get_property_dataSyncTransferRsp_ref().property_activityCode).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_activityCode_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_activityCode_ref())= sValue.c_str();
  }
  if(sKey == (msgResponse.get_property_dataSyncTransferRsp_ref().property_routeType).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_routeType_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_routeType_ref())= sValue.c_str();
  }
  if(sKey == (msgResponse.get_property_dataSyncTransferRsp_ref().property_routeValue).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_routeValue_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_routeValue_ref())= sValue.c_str();
  }
  if(sKey == (msgResponse.get_property_dataSyncTransferRsp_ref().property_procID).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_procID_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_procID_ref())= sValue.c_str();
  }
  if(sKey == (msgResponse.get_property_dataSyncTransferRsp_ref().property_transIDO).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_transIDO_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_transIDO_ref())= sValue.c_str();
  }
  if(sKey == (msgResponse.get_property_dataSyncTransferRsp_ref().property_transIDH).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_transIDH_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_transIDH_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_processTime).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_processTime_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_processTime_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_rspType).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_rspType_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_rspType_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_rspCode).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_rspCode_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_rspCode_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_rspDesc).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_rspDesc_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_rspDesc_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_origDomain).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_origDomain_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_origDomain_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_homeDomain).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_homeDomain_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_homeDomain_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_testFlag).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_testFlag_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_testFlag_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_msgSender).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_msgSender_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_msgSender_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_svcContVer).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_svcContVer_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_svcContVer_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_msgReceiver).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_msgReceiver_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_msgReceiver_ref())= sValue.c_str();
  }
  if(sKey== (msgResponse.get_property_dataSyncTransferRsp_ref().property_bIPVer).GetLocalName())
  {
   msgResponse.get_property_dataSyncTransferRsp_ref().get_property_bIPVer_ref().Exist(true);
   *(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_bIPVer_ref())= sValue.c_str();
  }
 }

 if(0 != rHttpRsp.GetBodyRef().GetSize())  // attachments
 {
  msgResponse.get_property_dataSyncTransferRsp_ref().get_property_dataDesFromSIS_ref().Exist(true);
  (*(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_dataDesFromSIS_ref())).SetSize( rHttpRsp.GetBodyRef().GetSize() );
  (*(msgResponse.get_property_dataSyncTransferRsp_ref().get_property_dataDesFromSIS_ref())).SetBuffer( rHttpRsp.GetBodyRef().GetBuffer() );
 }
}


void CIBClientHttpForwarder::handleResponse(DRMC_HTTPMSG::CRightReqResponse& msgResponse, CClientHttpRsp& rHttpRsp)
{
    ACE_UINT32 resultcode = (const_cast<CClientHttpRsp&>(rHttpRsp)).GetHttpRspMethodRef().GetResultCode();
    if( IB_HTTP_200 != resultcode )
    {
        PLATFORM::CKeyValueList& rkeyList = (const_cast<CClientHttpRsp&>(rHttpRsp)).GetKeyValueListRef();
        for(PLATFORM::CKeyValueList::iterator p = rkeyList.begin(); p != rkeyList.end(); ++p)
        {  
            my_thread_string sKey = (*p).GetKeyRef();
            my_thread_string sValue = (*p).GetValueRef();
            if( !ACE_OS::strncasecmp(sKey.c_str() , IB_HTTP_LOCATION, strlen(sKey.c_str()) ) )
            {
                msgResponse.get_property_url_ref().Exist(true);
                *(msgResponse.get_property_url_ref()) = sValue.c_str();
            }
        }
    }
}

void CIBClientHttpForwarder::handleResponse(STREAMING_HTTPMSG::CgetserverURLResponse& msgResponse, CClientHttpRsp& rHttpRsp)
{
    PLATFORM::CKeyValueList& rkeyList = (const_cast<CClientHttpRsp&>(rHttpRsp)).GetKeyValueListRef();
    for(PLATFORM::CKeyValueList::iterator p = rkeyList.begin(); p != rkeyList.end(); ++p)
    {
        my_thread_string sKey = (*p).GetKeyRef();
        my_thread_string sValue = (*p).GetValueRef();

        if( sKey==((msgResponse.property_resultcode).GetLocalName()))
        {
            msgResponse.get_property_resultcode_ref()= sValue.c_str();
        }
        if(sKey==((msgResponse.property_url).GetLocalName()))
        {
            msgResponse.get_property_url_ref()= sValue.c_str();
        }
    }
}
void CIBClientHttpForwarder::handleResponse(MDSP_HTTPMSG::CGetTokenResponse& msgResponse, CClientHttpRsp& rHttpRsp)
{
 if(0 != rHttpRsp.GetBodyRef().GetSize())  // attachments
 {
  msgResponse.get_property_getTokenRsp_ref().get_property_dataDes_ref().Exist(true);
  (*(msgResponse.get_property_getTokenRsp_ref().get_property_dataDes_ref())).SetSize( rHttpRsp.GetBodyRef().GetSize() );
  (*(msgResponse.get_property_getTokenRsp_ref().get_property_dataDes_ref())).SetBuffer( rHttpRsp.GetBodyRef().GetBuffer() );
 }
}

//void CIBClientHttpForwarder::clearMyMemory(SMSC_HTTPMSG::CSetSmsServiceFlagRequest& msgRequest)
//{ 
// if( msgRequest.get_property_dataStruct_ref().GetBuffer() )
// {
//  this->deallocate(msgRequest.get_property_dataStruct_ref().GetBuffer(), msgRequest.get_property_dataStruct_ref().GetSize() );
// }
//}
//
//void CIBClientHttpForwarder::clearMyMemory(Sync_httpmsg::CSyncDataNotifyRequest& msgRequest)
//{
// if( ( *((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataDes_ref())).GetBuffer() )
// {
//  this->deallocate( (*((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataDes_ref())).GetBuffer(), (*((msgRequest.get_property_syncDataNotifyReq_ref()).get_property_dataDes_ref())).GetSize() );
// }
//}
//void CIBClientHttpForwarder::clearMyMemory(Sync_httpmsg::CDataSourceSyncReceiptRequest& msgRequest)
//{
// if( (*(msgRequest.get_property_dataDes_ref())).GetBuffer() )
// {
//  this->deallocate( (*(msgRequest.get_property_dataDes_ref())).GetBuffer(), (*(msgRequest.get_property_dataDes_ref())).GetSize() );
// }
//}


 

原创粉丝点击