📄 layerapp.cpp
字号:
SuId suId;
MaDlgId suDlgId;
MaDlgId spDlgId;
#endif
{
TRC2(AppLiMatDlgCfm)
Dialog *curDlg;
#ifdef _MULTI_THREAD
pthread_mutex_lock(&(dlgQueue->Lock));
#endif
curDlg = dlgQueue->dlgFind(suDlgId, spDlgId);
#ifdef _MULTI_THREAD
pthread_mutex_unlock(&(dlgQueue->Lock));
#endif
if (curDlg == NULL)
{
AUACC_PRINT("AppLiMatDlgCfm__________Find dlg %ld failure \n",suDlgId);
}
else
{
curDlg->auLiMatDlgCfmPrs(spDlgId);
}
RETVALUE(ROK);
} /* AppLiMatDlgCfm */
/*
*
* Fun: AppLiMatDelimInd
*
* Desc: This function packs
*
* Ret: ROK
*
* Notes: None
*
* File: layerapp.c
*
*/
#ifdef ANSI
PUBLIC S16 AppLiMatDelimInd
(
Pst *pst,
SuId suId,
MaDlgId suDlgId,
MaDlgId spDlgId
)
#else
PUBLIC S16 AppLiMatDelimInd (pst,suId,suDlgId,spDlgId)
Pst *pst;
SuId suId;
MaDlgId suDlgId;
MaDlgId spDlgId;
#endif
{
TRC2(AppLiMatDelimInd)
MaAccMsgQElm qElm;
Dialog *curDlg;
AUACC_PRINT("AppLiMatDelimInd\n"); /* added by Adam */
qElm.evtType = MA_EVTDELIMIND;
qElm.suId = suId;
qElm.suDlgId = suDlgId;
qElm.spDlgId = spDlgId;
#ifdef _MULTI_THREAD
pthread_mutex_lock(&(dlgQueue->Lock));
#endif
curDlg = dlgQueue->dlgFind(suDlgId, spDlgId);
#ifdef _MULTI_THREAD
pthread_mutex_unlock(&(dlgQueue->Lock));
#endif
if (curDlg == NULLP)
{
AUACC_PRINT("AppLiMatDelimInd__________Find dlg %ld failure \n",suDlgId);
}
else
{
curDlg->auLiMatDelimIndPrs(&qElm);
if (0)
{
#if 1
MaDlgId auDlgId, maDlgId;
auDlgId = curDlg->auDlgIdGet();
maDlgId = curDlg->maDlgIdGet();
#endif
if (dlgQueue->dlgDelete(curDlg->auDlgIdGet()) != ROK)
{
AUACC_PRINT("AppLiMatDelimInd_______dlgDelete failure \
auDlgId = %ld maDlgId = %ld\n",
auDlgId, maDlgId);
}
else
{
AUACC_PRINT("AppLiMatDelimInd_______dlgDelete ok \
auDlgId = %ld maDlgId = %ld\n",
auDlgId, maDlgId);
RETVALUE(RFAILED);
}
}
}
RETVALUE(ROK);
} /* AppLiMatDelimInd */
/*
*
* Fun: AppLiMatStatInd
*
* Desc: This function packs
*
* Ret: ROK
*
* Notes: None
*
* File: layerapp.c
*
*/
#ifdef ANSI
PUBLIC S16 AppLiMatStatInd
(
Pst *pst,
SuId suId,
MaDlgId suDlgId,
MaInvokeId *invkId,
U8 primType,
Status status
)
#else
PUBLIC S16 AppLiMatStatInd (pst,suId,suDlgId, invkId, primType, status)
Pst *pst;
SuId suId;
MaDlgId suDlgId;
MaInvokeId *invkId;
U8 primType;
Status status;
#endif
{
MaAccMsgQElm qElm;
Dialog *curDlg;
qElm.evtType = MA_EVTSTATIND;
qElm.suId = suId;
qElm.suDlgId = suDlgId;
qElm.s.statEv.primType = primType;
qElm.s.statEv.invId.pres = invkId->pres;
qElm.s.statEv.invId.octet = invkId->octet;
#ifdef _MULTI_THREAD
pthread_mutex_lock(&(dlgQueue->Lock));
#endif
curDlg = dlgQueue->dlgFind(suDlgId, AU_ID_NULL);
#ifdef _MULTI_THREAD
pthread_mutex_unlock(&(dlgQueue->Lock));
#endif
if (curDlg == NULLP)
{
AUACC_PRINT("AppLiMatStatInd__________Find dlg %ld failure \n",suDlgId);
}
else
{
curDlg->auLiMatStaIndPrs(&qElm);
}
RETVALUE(ROK);
} /* AppLiMatStatInd */
/*
*
* Fun: AppLiMatSteInd
*
* Desc: This function packs
*
* Ret: ROK
*
* Notes: None
*
* File: layerapp.c
*
*/
#ifdef ANSI
PUBLIC S16 AppLiMatSteInd
(
Pst *pst,
SuId suId,
CmSS7SteMgmt *steMgmt
)
#else
PUBLIC S16 AppLiMatSteInd (pst,suId, steMgmt)
Pst *pst;
SuId suId;
CmSS7SteMgmt *steMgmt;
#endif
{
if (steMgmt->evntType == EVTSSN_STE_IND)
AUACC_PRINT("Dialog::auLiMatSteIndPrs---SSN %s,\n pc = %ld, ssn = %d,\
status = %d, smi = %d\n",
(steMgmt->mgmt.steInd.uStat == 0x03 ? "OUT OF SERVICE" : "IN SERVICE"),
steMgmt->mgmt.steInd.aDpc,
steMgmt->mgmt.steInd.aSsn, steMgmt->mgmt.steInd.uStat,
steMgmt->mgmt.steInd.smi);
else if (steMgmt->evntType == EVTPC_STE_IND)
AUACC_PRINT("Dialog::auLiMatSteIndPrs---PC %s,\n pc = %ld, sps =%d\n",
(steMgmt->mgmt.PCSteInd.sps == 0x00 ? "ACCESSIBLE" : "INACCESSIBLE"),
steMgmt->mgmt.PCSteInd.dpc,steMgmt->mgmt.PCSteInd.sps);
RETVALUE(ROK);
} /* AppLiMatSteInd */
/*
*
* Fun: AppLiMatSteCfm
*
* Desc: This function packs
*
* Ret: ROK
*
* Notes: None
*
* File: layerapp.c
*
*/
#ifdef ANSI
PUBLIC S16 AppLiMatSteCfm
(
Pst *pst,
SuId suId,
CmSS7SteMgmt *steMgmt
)
#else
PUBLIC S16 AppLiMatSteCfm (pst,suId, steMgmt)
Pst *pst;
SuId suId;
CmSS7SteMgmt *steMgmt;
#endif
{
MaAccMsgQElm qElm;
/* Dialog *curDlg;*/
qElm.evtType = MA_EVTSTECFM;
qElm.suId = suId;
#if 0
#ifdef _MULTI_THREAD
pthread_mutex_lock(&(dlgQueue->Lock));
#endif
curDlg = dlgQueue.dlgFind(suDlgId, spDlgId);
#ifdef _MULTI_THREAD
pthread_mutex_unlock(&(dlgQueue->Lock));
#endif
if (curDlg == NULLP)
{
}
else
{
curDlg->auLiMatSteCfmPrs(&qElm);
}
#endif
RETVALUE(ROK);
} /* AppLiMatSteCfm */
/* ----------------------------------------------------------------- */
/* Service Specific Primitives */
/* ----------------------------------------------------------------- */
/* --------------- Handover Management ----------------------------- */
#if MAP_MSC
/*
*
* Fun: upper interface - Handover Management Indication
*
* Desc: This function handles the indication for Handover
* services from the MAP user.
*
* Ret: ROK - ok
*
* Notes: None
*
* File: layerapp.c
*
*/
#ifdef ANSI
PUBLIC S16 AppLiMatHOMgmtInd
(
Pst *pst, /* post structure */
SuId suId, /* service user id */
MaDlgId suDlgId, /* Service user dialogue Id */
MaDlgId spDlgId, /* Service provider dialogue Id */
MaInvokeId *invkId, /* Invoke Id */
MaOprType oprType, /* Operation type */
MaHoEv *hoEv /* Handover Event Structure */
)
#else
PUBLIC S16 AppLiMatHOMgmtInd(pst, suId, suDlgId, spDlgId, invkId, oprType, hoEv)
Pst *pst; /* post structure */
SuId suId; /* service user id */
MaDlgId suDlgId; /* Service user dialogue Id */
MaDlgId spDlgId; /* Service provider dialogue Id */
MaInvokeId *invkId; /* Invoke Id */
MaOprType oprType; /* Operation type */
MaHoEv *hoEv; /* Handover Event Structure */
#endif
{
/* added by Bruce for MAPE 2003/6/16 */
MaAccMsgQElm qElm;
Dialog *curDlg;
TRC2(AppLiMatHOMgmtInd)
AUACC_PRINT("MAP Handover Management Ind suId %d - SuDlgId %3ld SpDlgId %3ld Operation %d\n", suId, suDlgId, spDlgId, oprType);
switch(oprType)
{
case MA_PRE_HO:
prehoReq_print(&(hoEv->preHoReq));
break;
case MA_PRE_SUBSHO:
presubhoReq_print(&(hoEv->preSubHoReq));
break;
case MA_SNDENDSIG:
sndendsigReq_print(&(hoEv->sndEndSigReq));
break;
case MA_PROCACCSIG:
procaccsig_print(&(hoEv->procAccSigReq));
break;
case MA_FWDACCSIG:
fwdaccsig_print(&(hoEv->fwdAccSigReq));
break;
}
qElm.evtType = MA_EVTHOMGMTIND;
qElm.suId = suId;
qElm.suDlgId = suDlgId;
qElm.spDlgId = spDlgId;
qElm.s.operEv.invId.pres = invkId->pres;
qElm.s.operEv.invId.octet = invkId->octet;
qElm.s.operEv.oprCode = oprType;
#ifdef _MULTI_THREAD
pthread_mutex_lock(&(dlgQueue->Lock));
#endif
curDlg = dlgQueue->dlgFind(suDlgId, spDlgId);
#ifdef _MULTI_THREAD
pthread_mutex_unlock(&(dlgQueue->Lock));
#endif
if(hoEv != NULLP)
{
cmCpy((PTR)hoEv, (PTR)&qElm.s.operEv.oprEv.hoEv, sizeof(MaHoEv));
}
if (curDlg == NULLP)
{
AUACC_PRINT("[AppLiMatHOMgmtInd]--Find dlg %ld failure \n",suDlgId);
}
else
{
curDlg->auLiMatUpLocIndPrs(&qElm);
}
RETVALUE(ROK);
} /* end of AppLiMatHOMgmtInd */
/*
*
* Fun: upper interface - Handover Management Confirm
*
* Desc: This function handles the Confirm for Handover
* services from the MAP user
*
* Ret: ROK - ok
*
* Notes: None
*
* File: layerapp.c
*
*/
#ifdef ANSI
PUBLIC S16 AppLiMatHOMgmtCfm
(
Pst *pst, /* post structure */
SuId suId, /* service user id */
MaDlgId suDlgId, /* Service user dialogue Id */
MaDlgId spDlgId, /* Service provider dialogue Id */
MaInvokeId *invkId, /* Invoke Id */
MaOprType oprType, /* Operation type */
MaUsrErr *usrErr, /* User Error */
MaPrvErr *prvErr, /* provider Error */
MaHoEv *hoEv /* Handover Event Structure */
)
#else
PUBLIC S16 AppLiMatHOMgmtCfm(pst, suId, suDlgId, spDlgId, invkId, oprType, usrErr,prvErr, hoEv)
Pst *pst; /* post structure */
SuId suId; /* service user id */
MaDlgId suDlgId; /* Service user dialogue Id */
MaDlgId spDlgId; /* Service provider dialogue Id */
MaInvokeId *invkId; /* Invoke Id */
MaOprType oprType; /* Operation type */
MaUsrErr *usrErr; /* User Error */
MaPrvErr *prvErr; /* provider Error */
MaHoEv *hoEv; /* Handover Event Structure */
#endif
{
MaAccMsgQElm qElm;
TRC2(AppLiMatHOMgmtCfm)
AUACC_PRINT("MAP Handover Management Cfm suId %d - SuDlgId %3ld SpDlgId %3ld Operation %d\n", suId, suDlgId, spDlgId, oprType);
switch(oprType)
{
case MA_PRE_HO:
prehoRsp_print(&(hoEv->preHoRsp));
break;
case MA_PRE_SUBSHO:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -