Exemplo n.º 1
0
void CLogTrigger::BeginTrigger(const void *pBuffer, int nLen, SLogInfo &sLog)
{    
    SSapMsgHeader *pHead = (SSapMsgHeader *)pBuffer;
    int nServId = ntohl(pHead->dwServiceId);
    int nMsgId  = ntohl(pHead->dwMsgId);       
    
    sLog.pItem = CTriggerConfig::Instance()->GetInfo(TRIGGERTYPE,nServId, nMsgId);    
    if (sLog.pItem == NULL || sLog.pItem->nReqSize == 0)
    {
        return;
    }  
    
    void *pBody  = (unsigned char *)pBuffer + pHead->byHeadLen;
    int nBodyLen = nLen - pHead->byHeadLen;  
    if (nBodyLen == 0)
    {
        sLog.strReq[0] = GetDefaultValue(sLog.pItem->nReqSize);
        return;
    }
    
    if (m_pConfig == NULL || 
        0 != m_pConfig->GetServiceNameById(nServId, nMsgId, sLog.serviceName))
    {  
        SS_XLOG(XLOG_DEBUG,"CLogTrigger::%s service[%d],msg[%d] not found\n",
            __FUNCTION__,nServId, nMsgId); 
        sLog.strReq[0] = GetDefaultValue(sLog.pItem->nReqSize);
        return;
    }
    
    CAvenueMsgHandler oHandler(sLog.serviceName,true,m_pConfig);      
    oHandler.Decode(pBody, nBodyLen);
    sLog.strReq[0] = BuildLog(&oHandler, NULL, sLog.pItem->vecReq, sLog.mapKey); 
}
Exemplo n.º 2
0
void CLogTrigger::EndTrigger(const void *pBuffer, int nLen, SLogInfo &sLog)
{           
    const STriggerItem *pItem = sLog.pItem;    
    if (pItem->nResSize == 0 )
    {        
        BuildLogInfo(sLog, "NULL");
        return;
    }        
    string strRes;
    if (pBuffer == NULL)
    {
        strRes = GetDefaultValue(pItem->nResSize); 
    }
    else
    {    
        SSapMsgHeader *pHead = (SSapMsgHeader *)pBuffer;
        void *pBody = (unsigned char *)pBuffer + pHead->byHeadLen;
        int nBodyLen = nLen - pHead->byHeadLen;          
        if (/* nBodyLen > 0 &&*/ m_pConfig != NULL)
        {        
            CAvenueMsgHandler oHandler(sLog.serviceName, false, m_pConfig);      
            oHandler.Decode(pBody, nBodyLen);
            strRes = BuildLog(&oHandler, NULL, pItem->vecRes, sLog.mapKey);        
        }
        else
        {  
            strRes = GetDefaultValue(pItem->nResSize); 
        }  
    }
    BuildLogInfo(sLog, strRes);
}
Exemplo n.º 3
0
	BasePBResponse::TPointer operator()(
		InputStreamListPtr inputStreams,
		server::UserSession& session
		)
	{
		//TODO: Would be good to sort out the reference/pointer situation
		//		sometime
		AdminCommand oHandler( 
			( *inputStreams ), 
			session.GetAuthToken(), 
			( *session.GetAdminCommandMan() )
			);
		return oHandler.GetResponse();
	}