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

📄 sccp_codec.c

📁 VC6.0环境下
💻 C
📖 第 1 页 / 共 2 页
字号:
        "LRN1", 0,  "Unassigned destination LRN",        "LRN2", 1,  "Inconsistent source LRN",        "PCM",  2,  "Point code mismatch",        "SCM",  3,  "Service class mismatch",        "UNQ",  4,  "Unqualified",        NULL);};Codec_REFC::Codec_REFC() :    Parameter("REFC","Refusal Cause",8,1,0,(Codec**)&REFC) {    REFC = new Set("REFC","Refusal Cause",8,0,        "EUO",  0,  "End user originated",        "EUC",  1,  "End user congestion",        "EUF",  2,  "End user failure",        "SCCP", 3,  "SCCP user originated",        "DAU",  4,  "Destination address unknown",        "DAI",  5,  "Destination address inaccessible",        "QOS",  6,  "QOS not available/non-transient",        "QOST", 7,  "QOS not available/transient",        "AF",   8,  "Access failure",        "AC",   9,  "Access congestion",        "SSF",  10, "Subsystem failure",        "SSC",  11, "Subsystem congestion",        "XCET", 12, "Exp. of connection estab timer",        "IUD",  13, "Incompatible user data",        "NOB",  14, "Not obtainable",        "UNQ",  15, "Unqualified",        NULL);};Codec_DATA::Codec_DATA() :    Parameter("DATA","Data",-1,1,0,(Codec**)&DATA) {    DATA = new OctetString("DATA","Data",-1);};Codec_SEGM::Codec_SEGM() :    Parameter("SEGM","Segmentation",32,4,0,(Codec**)&RSEG) {    RSEG = new Field("RSEG","Remaining Segments",4,2);    C    = new Set("C","In Sequence Delivery",1,0,        "NO",   0,  "Not in sequence delivery",        "YES",  1,  "In sequence delivery",        NULL);    F    = new Set("F","First Segment Ind",1,0,        "FIRST",  0,  "First segment",        "OTHER",  1,  "Segment other than first",        NULL);    LREF = new Field("LREF","Local Reference",24,0);};Codec_SCCPHOP::Codec_SCCPHOP() :    Parameter("SCCPHOP","SCCP Hop Counter",8,1,0,(Codec**)&SCCPHOP) {    SCCPHOP = new Field("SCCPHOP","SCCP Hop Counter",8,0);};// ************************************************// ****// **** Mandatory variable parameters// ****// ************************************************Codec_CDPA_M::Codec_CDPA_M() :    ParameterPL("CDPA","Called Party Address",-1,3,0,(Codec**)&PTR) {    PTR  = new Field("PTR","Parameter Pointer",8,0);    PL   = new Field("PL","Parameter Length",8,0);    CDPA = new Codec_CPA("CDPA","Called Party Address");};Codec_CGPA_M::Codec_CGPA_M() :    ParameterPL("CGPA","Calling Party Address",-1,3,0,(Codec**)&PTR) {    PTR  = new Field("PTR","Parameter Pointer",8,0);    PL   = new Field("PL","Parameter Length",8,0);    CGPA = new Codec_CPA("CGPA","Calling Party Address");};Codec_DATA_M::Codec_DATA_M() :    ParameterPL("DATA","Data",-1,3,0,(Codec**)&PTR) {    PTR  = new Field("PTR","Parameter Pointer",8,0);    PL   = new Field("PL","Parameter Length",8,0);    DATA = new Codec_DATA();};// ************************************************// ****// **** Optional Parameter List// ****// ************************************************Codec_SOPARM::Codec_SOPARM(char* l,char* t,Codec** a) :    ParameterNL(l,t,8,3,0,(Codec**)&PNAM) {    PNAM   = (Field*)a[0];    PL     = (Field*)a[1];    PNAM_B = (Bra*  )a[2];};Codec_SOPARM::Codec_SOPARM(const Codec_SOPARM& original) :    ParameterNL((ParameterNL&)original) {    PNAM   = new Field(*original.PNAM  );    PL     = new Field(*original.PL    );    PNAM_B = new Bra  (*original.PNAM_B);    PNAM_B->branch = PNAM;    content = (Codec**)&PNAM;};Codec_SOPARM*Codec_SOPARM::copy() {    return new Codec_SOPARM(*this);};Codec_SOPARMS::Codec_SOPARMS(char* l,char* t) :    ParameterP(l,t,8,2,18,(Codec**)&PTR) {    PTR     = new Field("PTR","Parameter Pointer",8,0);    DLR     = new Codec_DLR    ();    SLR     = new Codec_SLR    ();    CDPA    = new Codec_CPA    ("CDPA","Called Party Address");    CGPA    = new Codec_CPA    ("CGPA","Calling Party Address");    PCL     = new Codec_PCL    ();    SEG     = new Codec_SEG    ();    PRN     = new Codec_PRN    ();    SEQ     = new Codec_SEQ    ();    CREDIT  = new Codec_CREDIT ();    RELC    = new Codec_RELC   ();    RETC    = new Codec_RETC   ();    RSTC    = new Codec_RSTC   ();    ERRC    = new Codec_ERRC   ();    REFC    = new Codec_REFC   ();    DATA    = new Codec_DATA   ();    SEGM    = new Codec_SEGM   ();    SCCPHOP = new Codec_SCCPHOP();    UREC    = new Codec_UREC   ("UREC",   "Unrecognized Parameter");    PNAM   = new Field("PNAM","Parameter Name",8,0);    PL     = new Field("PL","Parameter Length",8,0);    PNAM_B = new Bra("PNAM:","PNAM Branch",(Codec*)PNAM,            DLR    ,  1, SLR    ,  2, CDPA   ,  3, CGPA   ,  4,            PCL    ,  5, SEG    ,  6, PRN    ,  7, SEQ    ,  8,            CREDIT ,  9, RELC   , 10, RETC   , 11, RSTC   , 12,            ERRC   , 13, REFC   , 14, DATA   , 15, SEGM   , 16,            SCCPHOP, 17, SCCPHOP,249,            UREC   , -1,        NULL);    OPARM = new Codec_SOPARM("OPARM","Optional Parameter",(Codec**)&PNAM);};// ************************************************// ****// **** SCCP Messages// ****// ************************************************Codec_SCCP::Codec_SCCP() :    Header("SCCP","Signalling Connection Control Part Msg",-1,2,18+17,(Codec**)&MT) {        // ************************************************    // ****    // **** Mandatory Parameters    // ****    // ************************************************    DLR     = new Codec_DLR    ();    SLR     = new Codec_SLR    ();    CDPA    = new Codec_CDPA_M ();    CGPA    = new Codec_CGPA_M ();    PCL     = new Codec_PCL    ();    SEG     = new Codec_SEG    ();    PRN     = new Codec_PRN    ();    SEQ     = new Codec_SEQ    ();    CREDIT  = new Codec_CREDIT ();    RELC    = new Codec_RELC   ();    RETC    = new Codec_RETC   ();    RSTC    = new Codec_RSTC   ();    ERRC    = new Codec_ERRC   ();    REFC    = new Codec_REFC   ();    DATA    = new Codec_DATA_M ();    SCCPHOP = new Codec_SCCPHOP();    UPART   = new Codec_UPART  ("UPART",  "User Part PDU",                                    CDPA->CDPA->SSNI,CDPA->CDPA->SSN);        OPARMS = new Codec_SOPARMS("OPARMS","Optional Parameters");        // ************************************************    // ****    // **** Messages    // ****    // ************************************************        CR   = new ParameterG("CR",   "Connection Request",    SLR,PCL,CDPA,OPARMS,NULL);    CC   = new ParameterG("CC",   "Connection Confirm",    DLR,SLR,PCL,OPARMS,NULL);    CREF = new ParameterG("CREF", "Connection Refused",    DLR,REFC,OPARMS,NULL);    RLSD = new ParameterG("RLSD", "Released",              DLR,SLR,RELC,OPARMS,NULL);    RLC  = new ParameterG("RLC",  "Release Complete",      DLR,SLR,NULL);    DT1  = new ParameterG("DT1",  "Data Form 1",           DLR,SEG,DATA,NULL);    DT2  = new ParameterG("DT2",  "Data Form 2",           DLR,SEQ,DATA,NULL);    AK   = new ParameterG("AK",   "Data Acknowledgement",  DLR,PRN,CREDIT,NULL);    UDT  = new ParameterG("UDT",  "Unitdata",              PCL,CDPA,CGPA,UPART,NULL);    UDTS = new ParameterG("UDTS", "Unitdata Service",      RETC,CDPA,CGPA,UPART,NULL);    ED   = new ParameterG("ED",   "Expedited Data",        DLR,DATA,NULL);    EA   = new ParameterG("EA",   "Expedited Data Acknow", DLR,NULL);    RSR  = new ParameterG("RSR",  "Reset Request",         DLR,SLR,RSTC,NULL);    RSC  = new ParameterG("RSC",  "Reset Confirmation",    DLR,SLR,NULL);    ERR  = new ParameterG("ERR",  "Proto Data Unit Error", DLR,ERRC,NULL);    IT   = new ParameterG("IT",   "Inactivity Test",       DLR,SLR,PCL,SEQ,CREDIT,NULL);    XUDT = new ParameterG("XUDT", "Extended Unitdata",     PCL,SCCPHOP,CDPA,CGPA,UPART,OPARMS,NULL);    XUDS = new ParameterG("XUDS", "Extended Unitdata Srv", RETC,SCCPHOP,CDPA,CGPA,UPART,OPARMS,NULL);        MT   = new Field("MT","Message Type",8,0);    MT_B = new Bra("MT:","Message Type Branch",(Codec*)MT,            CR  , 1, CC  , 2, CREF, 3, RLSD, 4, RLC , 5, DT1 , 6,            DT2 , 7, AK  , 8, UDT , 9, UDTS,10, ED  ,11, EA  ,12,            RSR ,13, RSC ,14, ERR ,15, IT  ,16, XUDT,17, XUDS,18,        NULL);};Codec_CPASCCP_CPA("CPA","SCCP Call Party Addr");

⌨️ 快捷键说明

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