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

📄 mib.h

📁 基于h323协议的软phone
💻 H
字号:
#ifdef __cplusplus
extern "C" {
#endif

    /* todo: change filename */

#ifndef __MIB_H
#define __MIB_H
#include "snmpI.h"
#include "rvh341agent.h"
#include "ra.h"

typedef struct mibNodeStruct * pMibNode;
typedef struct mibNodeStruct  mibNodeT;

typedef enum
{
    pduGetParam=1,
    pduGetNext,
    pduGetNextError,
    pduSetParam,
    pduGetIfIndex
}enumPduTypeT;


#define noSuchRoot  1
#define noSuchField 2
#define noSuchIndex 3

#define lastRaw     5

#define invalidIfIndex 7
#define nextIfIndex 8
#define invalidIndex 9
#define noRegisterInstance 10
#define noRequestNumber 11
#define invalidData 12
#define notImplemented 20
#define checkNext 20
#define outOfMib  21
#define noSuchInstance 50


typedef mibNodeT *
    (  * getH323ParameterT)( h341AgentHandleT hSnmp,enumPduTypeT pduType,snmpObjectT * oid,int *offset,mibNodeT * node,
                           void * buffer, int * error);


struct mibNodeStruct
{
    mibNodeT *  children;
    mibNodeT *  parent;
    RvUint8 childNum;
    RvBool table;
    getH323ParameterT   getH323Parameter;
    h341ParameterName name;
};




typedef int  sortDataHandleT ;
RV_DECLARE_HANDLE(CALLH);
RV_DECLARE_HANDLE(tableHandleT);

typedef int (* tableGetDataT)(RAElement data,h341ParameterName name,mibDataT * mibData);
typedef int ( * tableCompareT)(RvUint8 *key,int kSize ,int pos,tableHandleT table);
typedef RvUint8 *(* tableGetIndexT)(RAElement     data);
typedef int (*tableSetDefaultValT)(RAElement data,h341ParameterName name,mibDataT * mibData);


typedef struct
{
    sortDataHandleT *sortData; /* sorted array of n elements,that each element is pointer to
                                data*/
    int             size;
    int             keySize;
    HRA             data; /*array of element,that each element contains snmp index(key) and h323stack handle
                            to data or data itself*/
    tableGetDataT   get;
    tableCompareT   compare;
    tableGetIndexT  getIndex;
}tableT;



tableT *  tableConstruct(int nElements,int keySize,int elementSize,tableGetDataT   get,RAECompare   compare,
                         tableGetIndexT getIndex);
void tableDestruct(tableT *table);
int tableAdd(IN tableT *table, IN RAElement data, OUT int* entry);
int tableDelete(tableT *table,RvUint8 * index,int iSize);
int tableSetDefault(tableT *table,int pos,h341ParameterName name,mibDataT *data,tableSetDefaultValT  setValue);
RvUint8 * tableFindIndex(tableT *table,void *     data);
int  tableUpdateIndex(tableT *table,RvUint8 * index,RvUint8 *newkey,int iSize);





int getNextIndex (tableT * table ,h341ParameterName name,RvUint8 * index, int indexSize,
                  RvUint8 *nextIndex,int *nextSize,mibDataT *data);
int getByIndex (tableT * table ,RvUint8 * index, int indexSize,
                h341ParameterName name,mibDataT *data);



typedef struct
{
    int ifIndex;
    snmpObjectT *pSourceOid;
    snmpObjectT *pResultOid;
    instanceRequestDataT instReqData;
}RequestDataT;



typedef RequestDataT * RequestDataPtrT;

typedef struct
{

    h341ApplHandle h341hApp;
    tableT *  H225ConnectionsTable;
    tableT *  HTestTable;
    tableT *  ControlTable;
    tableT *  CapTable;
    tableT *  LCTable;
    tableT *  LCH225Table;
    h341InstEvReadWriteSetT  h341EvReadWriteSet;
    h341InstEvChangeGlobalsT   h341ChangeGlobals;
    h341AgentComHandle   agentComHandle;
    int ifIndex;

}h341InstanceHandleT;





typedef struct
{
    h341RegisterHandleT h341AgentRegs;
    instanceRequestDataPtrT * iRequestsPtr;
    int reqNum;
}h341RegisterInfoT;

typedef struct
{
    h341RegisterInfoT  *info;/* array containing instance information*/
    mibNodeT *root;
    snmpObjectT subtrees[SUPPORT_SUBTREE_SIZE];
/*
    h341RetrieveNextIndexT h341RetrieveNextIndex;
    h341RetrieveByIndexT  h341RetrieveByIndex;
    h341RetrieveParameterT h341RetrieveParameter;
*/
    h341AgentEvSetParameterT       h341SetParameter;
    h341AgentEvMRRetrieveT         h341MRRetrieve;
    int instNum;        /* number of snmp instance connected to subAgent*/
    int activeConnections;
    RequestDataT * multReq; /* snmp agent requests  array allocated in initialization time*/
    int maxRequestNumber;  /* max size of snmp agent requests  array*/
    int maxInstanceNumber;
}h341AgentT;




tableT *  h225tableConstruct(int nElements);
int get(h341AgentHandleT hAgent,snmpObjectT *oid,INOUT void * buffer);
int set(h341AgentHandleT hSnmp,snmpObjectT *oid,INOUT void * buffer);
int getNext(h341AgentHandleT hAgent,INOUT void * buffer);

h341ErrorT createMib(h341AgentT * h341handle);
h341RegisterHandleT getSnmpInstance(IN h341AgentHandleT hSnmp,int ifIndex);
void destroyMib(mibNodeT * node);


#endif

#ifdef __cplusplus
}
#endif

⌨️ 快捷键说明

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