sendIndToExtInf (cardstatus所有上报都update在这里)------------ ext,cscd同时在这里注册了
{
//DAL_RM_CARD_STATUS_SUBSCRIBE_CSCD_REQ 是负责订阅的message。
//第一次发送这个message的时候,setCscdMgrCardStatusSubscribed 设置了 m_cscdMgrCardStatusSubscribed。在处理订阅的同时,发送cardstatus request
//如果有发给extinf的地方,就订阅一份,发给cascadeMgr。如果没有这个订阅的话,则表示第一次card status request没有发出.
if (RmUtility::instance()->getCscdMgrCardStatusSubscribed())
{
//这个名字有问题,是mother,child 都调用这个,用于本地查询
m_rmResponseHandler->handleLteCardStatusRptForCscdChildMgr();
}
}
handleLteCardStatusRptForCscdChildMgr()
cscdMgrSigP->dalTransReCardStatusRptLteS.hdr.src = RmUtility::instance()->getCscdMgrPid();
handleLteReCardStatusReport(cscdMgrSigP);
sigP ->sigNo = DAL_TRANS_RE_CARD_STATUS_RPT_LTE_RSP;
RmUtility::instance()->sendWithTrace(sigP, sigP->dalTransReCardStatusRptLteS.hdr.src);
//这个respond sigNo对应的handler是哪一个呢。在init的最后,通过request sigNo 找到 respond sigNo 的CASCADE_STATE_HDLR.
mMapCascadeMotherSigHdlrs[DAL_REQ_TO_RSP(sigNo)] = mMapCascadeMotherSigHdlrs[sigNo]; //发回给src cascadeMgr,从base找到了CASCADE_STATE_HDLR.
================================================================
caller:
handleReWorkingModeChange(mother) /handleEnableChildStateReport(child) 两个都做了cardstatus 主动report
subscribeRmCardStatus
sigP = alloc(sizeof(SIGSELECT), DAL_RM_CARD_STATUS_SUBSCRIBE_CSCD_REQ); // subscribe_req
send(&sigP, pid); // send to rm
handleCardStatusSubscribeCscdReq(sigP);
pid = sender(&sigP);
RmUtility::instance()->setCscdMgrCardStatusSubscribed(true);
RmUtility::instance()->setCscdMgrPid(pid);
// Send confirmation signal back to cscdMgr.
sigP->sigNo = DAL_RM_CARD_STATUS_SUBSCRIBE_CSCD_CFM; //subscribe_cfm
RmUtility::instance()->sendWithTrace(sigP, pid);