⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layerapp.cpp

📁 map协议源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
*/

#ifdef ANSI
PUBLIC S16 AppLiMatIMEIMgmtInd
(
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 */
MaIMEIEv    *imeiEv         /* IMEI Event Structure */
)
#else
PUBLIC S16 AppLiMatIMEIMgmtInd(pst, suId, suDlgId, spDlgId, invkId, oprType, imeiEv)
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 */
MaIMEIEv    *imeiEv;        /* IMEI Event Structure */
#endif
{
    MaAccMsgQElm  qElm;
    
    AUACC_PRINT("MAP IMEI Management Ind suId %d - SuDlgId %3ld   SpDlgId %3ld Operation %d\n", suId, suDlgId, spDlgId, oprType);
    
    qElm.evtType = MA_EVTIMEIMGMTIND;
    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;
#if 0  /* ma009.14:change - old code */
    cmCpy((PTR)imeiEv, (PTR)&qElm.s.operEv.oprEv.imeiEv, sizeof(MaIMEIEv));
#else  /* ma009.14:change - new code */
    if(imeiEv != NULLP)
    {
       cmCpy((PTR)imeiEv, (PTR)&qElm.s.operEv.oprEv.imeiEv, sizeof(MaIMEIEv));
    }
#endif /* ma009.14:change */
    RETVALUE(ROK);
} /* end of AppLiMatIMEIMgmtInd */


/*
*
*       Fun:   upper interface - IMEI Management Confirm
*
*       Desc:  This function handles the  response for IMEI Management
*              services from the MAP user.
*
*       Ret:   ROK      - ok
*
*       Notes: None
*
*       File:  layerapp.c
*
*/

#ifdef ANSI
PUBLIC S16 AppLiMatIMEIMgmtCfm
(
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 */
MaIMEIEv    *imeiEv         /* IMEI Event Structure */
)
#else
PUBLIC S16 AppLiMatIMEIMgmtCfm(pst, suId, suDlgId, spDlgId, invkId, oprType, usrErr, prvErr, imeiEv)
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 */
MaIMEIEv    *imeiEv;        /* IMEI Event Structure */
#endif
{
    MaAccMsgQElm  qElm;
    
    TRC2(AppLiMatIMEIMgmtCfm)
    
    AUACC_PRINT("MAP IMEI Management Cfm suId %d - SuDlgId %3ld   SpDlgId %3ld Operation %d\n", suId, suDlgId, spDlgId, oprType);
    
    qElm.evtType = MA_EVTIMEIMGMTCFM;
    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;
#if 0  /* ma009.14:change - old code */
    cmCpy((PTR)usrErr, (PTR)&qElm.s.operEv.usrErr, sizeof(MaUsrErr));
    cmCpy((PTR)prvErr, (PTR)&qElm.s.operEv.prvErr, sizeof(MaPrvErr));
    cmCpy((PTR)imeiEv, (PTR)&qElm.s.operEv.oprEv.imeiEv, sizeof(MaIMEIEv));
#else  /* ma009.14:change - new code */
    if(usrErr != NULLP)
    {
        cmCpy((PTR)usrErr, (PTR)&qElm.s.operEv.usrErr, sizeof(MaUsrErr));
    }
    if(prvErr != NULLP)
    {
        cmCpy((PTR)prvErr, (PTR)&qElm.s.operEv.prvErr, sizeof(MaPrvErr));
    }
    if(imeiEv != NULLP)
    {
        cmCpy((PTR)imeiEv, (PTR)&qElm.s.operEv.oprEv.imeiEv, sizeof(MaIMEIEv));
    }
#endif /* ma009.14:change */
    RETVALUE(ROK);
} /* end of AppLiMatIMEIMgmtCfm */

#endif /* MAP_MSC || MAP_VLR || MAP_GSN */

/* --------------- Fault and Recovery Management -------------------- */
#if (MAP_VLR || MAP_HLR)

/*
*
*       Fun:   upper interface - Fault and Recovery Management Confirm
*
*       Desc:  This function handles the Confirm for Fault and Recovery
*              services from the MAP user
*
*       Ret:   ROK      - ok
*
*       Notes: None
*
*       File:  layerapp.c
*
*/

#ifdef ANSI
PUBLIC S16 AppLiMatFRMgmtCfm
(
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 */
MaFREv    *frEv             /* Fault and Recovery Management Event Structure */
)
#else
PUBLIC S16 AppLiMatFRMgmtCfm(pst, suId, suDlgId, spDlgId, invkId, oprType, usrErr,prvErr, frEv)
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 */
MaFREv    *frEv;            /* Fault and Recovery Management Event Structure */
#endif
{
    MaAccMsgQElm  qElm;
    
    TRC2(AppLiMatFRMgmtCfm)

    AUACC_PRINT("MAP Fault Management Cfm suId %d - SuDlgId %3ld   SpDlgId %3ld Operation %d\n",
    	suId, suDlgId, spDlgId, oprType);
    
    qElm.evtType = MA_EVTFRMGMTCFM;
    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;
#if 0  /* ma009.14:change - old code */
    cmCpy((PTR)usrErr, (PTR)&qElm.s.operEv.usrErr, sizeof(MaUsrErr));
    cmCpy((PTR)prvErr, (PTR)&qElm.s.operEv.prvErr, sizeof(MaPrvErr));
    cmCpy((PTR)frEv, (PTR)&qElm.s.operEv.oprEv.frEv, sizeof(MaFREv));
#else  /* ma009.14:change - new code */
    if(usrErr != NULLP)
    {
        cmCpy((PTR)usrErr, (PTR)&qElm.s.operEv.usrErr, sizeof(MaUsrErr));
    }
    if(prvErr != NULLP)
    {
        cmCpy((PTR)prvErr, (PTR)&qElm.s.operEv.prvErr, sizeof(MaPrvErr));
    }
    if(frEv != NULLP)
    {
        cmCpy((PTR)frEv, (PTR)&qElm.s.operEv.oprEv.frEv, sizeof(MaFREv));
    }
#endif /* ma009.14:change */
    RETVALUE(ROK);
} /* end of AppLiMatFRMgmtCfm */

#endif /* MAP_VLR || MAP_HLR */

#if (MAP_MSC || MAP_VLR || MAP_HLR || MAP_GSN)

/*
*
*       Fun:   AppLiMatFRMgmtInd
*
*       Desc:  This function handles the  indication for Fault and Recovery
*              services from the MAP user.
*
*       Ret:   ROK      - ok
*
*       Notes: None
*
*       File:  layerapp.c
*
*/

#ifdef ANSI
PUBLIC S16 AppLiMatFRMgmtInd
(
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 */
MaFREv    *frEv             /* Fault and Recovery Event Structure */
)
#else
PUBLIC S16 AppLiMatFRMgmtInd(pst, suId, suDlgId, spDlgId, invkId, oprType, frEv)
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 */
MaFREv    *frEv;            /* Fault and Recovery Event Structure */
#endif
{
    MaAccMsgQElm  qElm;
    Dialog   *curDlg;
    
    TRC2(AppLiMatFRMgmtInd)
    
    AUACC_PRINT("MAP Fault Management Ind suId %d - SuDlgId %3ld   SpDlgId %3ld Operation %d\n", suId, suDlgId, spDlgId, oprType);
    
    qElm.evtType = MA_EVTFRMGMTIND;
    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 0  /* ma009.14:change - old code */
    cmCpy((PTR)frEv, (PTR)&qElm.s.operEv.oprEv.frEv, sizeof(MaFREv));
#else  /* ma009.14:change - new code */
    if(frEv != NULLP)
    {
       cmCpy((PTR)frEv, (PTR)&qElm.s.operEv.oprEv.frEv, sizeof(MaFREv));
    }
    
    if (curDlg == NULLP)
    {
        AUACC_PRINT("[AppLiMatFRMgmtInd]--Find dlg %ld failure \n",suDlgId);
    }
    else
    {
        curDlg->auLiMatUpLocIndPrs(&qElm);
    }

#endif /* ma009.14:change */
    RETVALUE(ROK);
} /* end of AppLiMatFRMgmtInd */

#endif /* MAP_MSC || MAP_VLR || MAP_HLR || MAP_GSN */

/* --------------- OAM Management ----------------------------------- */
#if (MAP_MSC || MAP_VLR || MAP_HLR)

/*
*
*       Fun:   AppLiMatOAMCfm
*
*       Desc:  This function handles the Confirm for Operation and Maintenance
*              services from the MAP user
*
*       Ret:   ROK      - ok
*
*       Notes: None
*
*       File:  layerapp.c
*
*/

#ifdef ANSI
PUBLIC S16 AppLiMatOAMCfm
(
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 */
MaOAMEv    *oamEv           /* Operation and Maintenance Event Structure */
)
#else
PUBLIC S16 AppLiMatOAMCfm(pst, suId, suDlgId, spDlgId, invkId, oprType, usrErr, prvErr, oamEv)
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 */
MaOAMEv    *oamEv;          /* Operation and Maintenance Event Structure */
#endif
{
    MaAccMsgQElm  qElm;
    
    
    TRC2(AppLiMatOAMCfm)
    
    AUACC_PRINT("MAP OAM Management Cfm suId %d - SuDlgId %3ld   SpDlgId %3ld Operation %d\n", suId, suDlgId, spDlgId, oprType);
    
    qElm.evtType = MA_EVTOAMMGMTCFM;
    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;
#if 0  /* ma009.14:change - old code */
    cmCpy((PTR)usrErr, (PTR)&qElm.s.operEv.usrErr, sizeof(MaUsrErr));
    cmCpy((PTR)prvErr, (PTR)&qElm.s.operEv.prvErr, sizeof(MaPrvErr));
    cmCpy((PTR)oamEv, (PTR)&qElm.s.operEv.oprEv.oamEv, sizeof(MaOAMEv));
#else  /* ma009.14:change - new code */
    if(usrErr != NULLP)
    {
       cmCpy((PTR)usrErr, (PTR)&qElm.s.operEv.usrErr, sizeof(MaUsrErr));
    }
    if(prvErr != NULLP)
    {
       cmCpy((PTR)prvErr, (PTR)&qElm.s.operEv.prvErr, sizeof(MaPrvErr));
    }
    if(oamEv != NULLP)
    {
       cmCpy((PTR)oamEv, (PTR)&qElm.s.operEv.oprEv.oamEv, sizeof(MaOAMEv));
    }
#endif /* ma009.14:change */
    RETVALUE(ROK);
} /* end of AppLiMatOAMCfm */

#endif /* MAP_MSC || MAP_VLR || MAP_HLR */

#if (MAP_MSC || MAP_VLR || MAP_HLR || MAP_GSN)


/*
*
*       Fun:   AppLiMatOAMInd
*
*       Desc:  This function handles the  indication for Operation and Maintenance
*              services from the MAP user.
*
*       Ret:   ROK      - ok
*
*       Notes: None
*
*       File:  layerapp.c
*
*/

#ifdef ANSI
PUBLIC S16 AppLiMatOAMInd
(
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 */
MaOAMEv    *oamEv           /* Operation and Maintenance Event Structure */
)
#else
PUBLIC S16 AppLiMatOAMInd(pst, suId, suDlgId, spDlgId, invkId, oprType, oamEv)
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 */
MaOAMEv    *oamEv;          /* Operation and Maintenance Event Structure */
#endif
{
    MaAccMsgQElm  qElm;
    Dialog *curDlg;
    
    TRC2(AppLiMatOAMInd)
    
    AUACC_PRINT("MAP OAM Management Ind suId %d - SuDlgId %3ld   SpDlgId %3ld Operation %d\n",
                     suId, suDlgId, spDlgId, oprType);
    
    qElm.evtType = MA_EVTOAMMGMTIND;
    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 0  /* ma009.14:change - old code */
    cmCpy((PTR)oamEv, (PTR)&qElm.s.operEv.oprEv.oamEv, sizeof(MaOA

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -