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

📄 ospstatistics.c

📁 mgcp协议源代码。支持多种编码:g711
💻 C
📖 第 1 页 / 共 2 页
字号:
/**########################################################################*########################################################################*########################################################################*                                                               *   COPYRIGHT (c) 1998, 1999 by TransNexus, LLC                          *                                                                    *   This software contains proprietary and confidential information  *   of TransNexus, LLC. Except as may be set forth in the license    *   agreement under which this software is supplied, use, disclosure, *   or reproduction is prohibited without the prior, express, written*   consent of TransNexus, LLC.                                      *                                     *******#########################################################################*#########################################################################*#########################################################################*//* * ospstatistics.c - OSP Statistics elements functions */#include "osp.h"#include "ospstatistics.h"#include "ospmsgelem.h"#include "ospmsgattr.h"#include "ospmsg.h"/* Delete Statistics structure */voidOSPPStatisticsDelete(    OSPTSTATISTICS  **ospvStatistics){    if(*ospvStatistics != OSPC_OSNULL)    {        OSPM_FREE(*ospvStatistics);        *ospvStatistics = OSPC_OSNULL;    }    return;}/* Get value for fractionreceived */signedOSPPStatisticsGetFracReceived(    OSPTSTATISTICS  *ospvStatistics){    signed fracrecvd = 0;    if(ospvStatistics != OSPC_OSNULL)    {        fracrecvd = ospvStatistics->ospmLossFractionReceived;    }    return fracrecvd;}/* Get value for OneWay.Minimum */unsignedOSPPStatisticsGetOneWayMinimum(    OSPTSTATISTICS  *ospvStatistics){    unsigned min = 0;    if(ospvStatistics != OSPC_OSNULL)    {        min = ospvStatistics->ospmOneWay.Minimum;    }    return min;}/* Get value for OneWay.Mean */unsignedOSPPStatisticsGetOneWayMean(    OSPTSTATISTICS  *ospvStatistics){    unsigned mean = 0;    if(ospvStatistics != OSPC_OSNULL)    {        mean = ospvStatistics->ospmOneWay.Mean;    }    return mean;}/* Get value for OneWay.Variance */floatOSPPStatisticsGetOneWayVariance(    OSPTSTATISTICS  *ospvStatistics){    float var = 0;    if(ospvStatistics != OSPC_OSNULL)    {        var = ospvStatistics->ospmOneWay.Variance;    }    return var;}/* Get value for OneWay.Samples */unsignedOSPPStatisticsGetOneWaySamples(    OSPTSTATISTICS  *ospvStatistics){    unsigned samp = 0;    if(ospvStatistics != OSPC_OSNULL)    {        samp = ospvStatistics->ospmOneWay.NumberOfSamples;    }    return samp;}/* Get value for packetsreceived */unsignedOSPPStatisticsGetPktReceived(    OSPTSTATISTICS  *ospvStatistics){    unsigned pktsrecvd = 0;    if(ospvStatistics != OSPC_OSNULL)    {        pktsrecvd = ospvStatistics->ospmLossPacketsReceived;    }    return pktsrecvd;}/* Get value for fractionsent */signedOSPPStatisticsGetFracSent(    OSPTSTATISTICS  *ospvStatistics){    signed fracsent = 0;    if(ospvStatistics != OSPC_OSNULL)    {        fracsent = ospvStatistics->ospmLossFractionSent;    }    return fracsent;}/* Get value for packetssent */unsignedOSPPStatisticsGetPktSent(    OSPTSTATISTICS  *ospvStatistics){    unsigned pktssent = 0;    if(ospvStatistics != OSPC_OSNULL)    {        pktssent = ospvStatistics->ospmLossPacketsSent;    }    return pktssent;}/* Get value for RoundTrip.Minimum */unsignedOSPPStatisticsGetRoundTripMinimum(    OSPTSTATISTICS  *ospvStatistics){    unsigned min = 0;    if(ospvStatistics != OSPC_OSNULL)    {        min = ospvStatistics->ospmRoundTrip.Minimum;    }    return min;}/* Get value for RoundTrip.Mean */unsignedOSPPStatisticsGetRoundTripMean(    OSPTSTATISTICS  *ospvStatistics){    unsigned mean = 0;    if(ospvStatistics != OSPC_OSNULL)    {        mean = ospvStatistics->ospmRoundTrip.Mean;    }    return mean;}/* Get value for RoundTrip.Variance */floatOSPPStatisticsGetRoundTripVariance(    OSPTSTATISTICS  *ospvStatistics){    float var = 0;    if(ospvStatistics != OSPC_OSNULL)    {        var = ospvStatistics->ospmRoundTrip.Variance;    }    return var;}/* Get value for RoundTrip.Samples */unsignedOSPPStatisticsGetRoundTripSamples(    OSPTSTATISTICS  *ospvStatistics){    unsigned samp = 0;    if(ospvStatistics != OSPC_OSNULL)    {        samp = ospvStatistics->ospmRoundTrip.NumberOfSamples;    }    return samp;}/* Check for existence of LossReceived statistics */OSPTBOOL    OSPPStatisticsHasLossReceived(    OSPTSTATISTICS *ospvStatistics    ){    if(ospvStatistics != OSPC_OSNULL)    {        return ospvStatistics->ospmHasReceivedStats;    }    else    {        return OSPC_FALSE;    }}/* Check for existence of LossSent statistics */OSPTBOOL    OSPPStatisticsHasLossSent(    OSPTSTATISTICS *ospvStatistics    ){    if(ospvStatistics != OSPC_OSNULL)    {        return ospvStatistics->ospmHasSentStats;    }    else    {        return OSPC_FALSE;    }}/* Check for existence of OneWay statistics */OSPTBOOL    OSPPStatisticsHasOneWay(    OSPTSTATISTICS *ospvStatistics    ){    if(ospvStatistics != OSPC_OSNULL)    {        return ospvStatistics->ospmHasOneWay;    }    else    {        return OSPC_FALSE;    }}/* Check for existence of RoundTrip statistics */OSPTBOOL    OSPPStatisticsHasRoundTrip(    OSPTSTATISTICS *ospvStatistics    ){    if(ospvStatistics != OSPC_OSNULL)    {        return ospvStatistics->ospmHasRoundTrip;    }    else    {        return OSPC_FALSE;    }}/* Create loss received element */intOSPPStatisticsLossReceivedToElement(    OSPTSTATISTICS *ospvStatistics,     OSPTXMLELEM    **ospvElem){    int         errorcode   = OSPC_ERR_NO_ERROR;    OSPTXMLELEM *elem       = OSPC_OSNULL;    OSPTXMLATTR *attr       = OSPC_OSNULL;    if(ospvElem == OSPC_OSNULL)    {        errorcode = OSPC_ERR_XML_NO_ELEMENT;    }    if(ospvStatistics == OSPC_OSNULL)    {        errorcode = OSPC_ERR_DATA_NO_STATS;    }    if(errorcode == OSPC_ERR_NO_ERROR)    {        *ospvElem = OSPPXMLElemNew(OSPPMsgGetElemName(ospeElemTNLossRcvd), "");        if(*ospvElem == OSPC_OSNULL)        {            errorcode = OSPC_ERR_XML_NO_ELEMENT;        }        if(errorcode == OSPC_ERR_NO_ERROR)        {            attr = OSPPXMLAttrNew(                (const unsigned char *)OSPPMsgGetAttrName(ospeAttrCritical),                (const unsigned char *)"False");            if (attr != OSPC_OSNULL)            {                OSPPXMLElemAddAttr(*ospvElem, attr);                attr = OSPC_OSNULL;            }            else            {                errorcode = OSPC_ERR_XML_NO_ATTR;            }        }            }    /* Loss Packets Received */    if(errorcode== OSPC_ERR_NO_ERROR)    {        errorcode = OSPPMsgNumToElement(OSPPStatisticsGetPktReceived(ospvStatistics),            (const unsigned char *)OSPPMsgGetElemName(ospeElemTNPackets), &elem);        if(errorcode == OSPC_ERR_NO_ERROR)        {            attr = OSPPXMLAttrNew(                (const unsigned char *)OSPPMsgGetAttrName(ospeAttrCritical),                (const unsigned char *)"False");            if (attr != OSPC_OSNULL)             {                OSPPXMLElemAddAttr(elem, attr);                attr = OSPC_OSNULL;            }            else            {                errorcode = OSPC_ERR_XML_NO_ATTR;            }            if (errorcode == OSPC_ERR_NO_ERROR)            {                OSPPXMLElemAddChild(*ospvElem, elem);                elem = OSPC_OSNULL;            }        }    }    /* Loss Fraction Received */    if(errorcode== OSPC_ERR_NO_ERROR)    {        errorcode = OSPPMsgNumToElement(OSPPStatisticsGetFracReceived(ospvStatistics),            (const unsigned char *)OSPPMsgGetElemName(ospeElemTNFraction), &elem);        if(errorcode == OSPC_ERR_NO_ERROR)        {            attr = OSPPXMLAttrNew(                (const unsigned char *)OSPPMsgGetAttrName(ospeAttrCritical),                (const unsigned char *)"False");            if (attr != OSPC_OSNULL)             {                OSPPXMLElemAddAttr(elem, attr);                attr = OSPC_OSNULL;            }            else            {                errorcode = OSPC_ERR_XML_NO_ATTR;            }            if (errorcode == OSPC_ERR_NO_ERROR)            {                OSPPXMLElemAddChild(*ospvElem, elem);                elem = OSPC_OSNULL;            }        }    }    /* clean up */    if(attr != OSPC_OSNULL)    {        OSPM_FREE(attr);        attr = OSPC_OSNULL;    }    if(elem != OSPC_OSNULL)    {        OSPM_FREE(elem);        elem = OSPC_OSNULL;    }    return errorcode;}/* Create loss sent element */intOSPPStatisticsLossSentToElement(    OSPTSTATISTICS *ospvStatistics,     OSPTXMLELEM    **ospvElem){    int         errorcode   = OSPC_ERR_NO_ERROR;    OSPTXMLELEM *elem       = OSPC_OSNULL;    OSPTXMLATTR *attr       = OSPC_OSNULL;    if(ospvElem == OSPC_OSNULL)    {        errorcode = OSPC_ERR_XML_NO_ELEMENT;    }    if(ospvStatistics == OSPC_OSNULL)    {        errorcode = OSPC_ERR_DATA_NO_STATS;    }    if(errorcode == OSPC_ERR_NO_ERROR)    {        *ospvElem = OSPPXMLElemNew(OSPPMsgGetElemName(ospeElemTNLossSent), "");        if(*ospvElem == OSPC_OSNULL)        {            errorcode = OSPC_ERR_XML_NO_ELEMENT;        }        if(errorcode == OSPC_ERR_NO_ERROR)        {            attr = OSPPXMLAttrNew(                (const unsigned char *)OSPPMsgGetAttrName(ospeAttrCritical),                (const unsigned char *)"False");            if (attr != OSPC_OSNULL)            {                OSPPXMLElemAddAttr(*ospvElem, attr);                attr = OSPC_OSNULL;            }            else            {                errorcode = OSPC_ERR_XML_NO_ATTR;            }        }            }    /* Loss Packets Sent */    if(errorcode== OSPC_ERR_NO_ERROR)    {        errorcode = OSPPMsgNumToElement(OSPPStatisticsGetPktSent(ospvStatistics),            (const unsigned char *)OSPPMsgGetElemName(ospeElemTNPackets), &elem);        if(errorcode == OSPC_ERR_NO_ERROR)        {            attr = OSPPXMLAttrNew(                (const unsigned char *)OSPPMsgGetAttrName(ospeAttrCritical),                (const unsigned char *)"False");            if (attr != OSPC_OSNULL)             {                OSPPXMLElemAddAttr(elem, attr);                attr = OSPC_OSNULL;            }            else            {                errorcode = OSPC_ERR_XML_NO_ATTR;            }            if (errorcode == OSPC_ERR_NO_ERROR)            {                OSPPXMLElemAddChild(*ospvElem, elem);                elem = OSPC_OSNULL;            }        }    }    /* Loss Fraction Sent */    if(errorcode== OSPC_ERR_NO_ERROR)    {        errorcode = OSPPMsgNumToElement(OSPPStatisticsGetFracSent(ospvStatistics),            (const unsigned char *)OSPPMsgGetElemName(ospeElemTNFraction), &elem);        if(errorcode == OSPC_ERR_NO_ERROR)        {            attr = OSPPXMLAttrNew(                (const unsigned char *)OSPPMsgGetAttrName(ospeAttrCritical),                (const unsigned char *)"False");            if (attr != OSPC_OSNULL)             {                OSPPXMLElemAddAttr(elem, attr);                attr = OSPC_OSNULL;            }            else            {                errorcode = OSPC_ERR_XML_NO_ATTR;            }            if (errorcode == OSPC_ERR_NO_ERROR)            {                OSPPXMLElemAddChild(*ospvElem, elem);                elem = OSPC_OSNULL;            }        }    }    /* clean up */    if(attr != OSPC_OSNULL)    {        OSPM_FREE(attr);        attr = OSPC_OSNULL;    }    if(elem != OSPC_OSNULL)    {        OSPM_FREE(elem);        elem = OSPC_OSNULL;    }    return errorcode;}/* Create new Statistics Structure */OSPTSTATISTICS *    OSPPStatisticsNew(void){    OSPTSTATISTICS  *ospvStatistics = OSPC_OSNULL;    OSPM_MALLOC(ospvStatistics, OSPTSTATISTICS, sizeof(OSPTSTATISTICS));    if (ospvStatistics != OSPC_OSNULL)    {        OSPM_MEMSET(ospvStatistics, 0, sizeof(OSPTSTATISTICS));    }    return ospvStatistics;}/* OneWay to Element */intOSPPStatisticsOneWayToElement(    OSPTSTATISTICS  *ospvStatistics,    OSPTXMLELEM     **ospvElem){    int         errorcode   = OSPC_ERR_NO_ERROR;    OSPTXMLELEM *elem       = OSPC_OSNULL;    OSPTXMLATTR *attr       = OSPC_OSNULL;    if(ospvElem == OSPC_OSNULL)    {        errorcode = OSPC_ERR_XML_NO_ELEMENT;    }    if(ospvStatistics == OSPC_OSNULL)    {        errorcode = OSPC_ERR_DATA_NO_STATS;    }    if(errorcode == OSPC_ERR_NO_ERROR)    {

⌨️ 快捷键说明

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