var_struct.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:5k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #ifndef VAR_STRUCT_H
  2. #define VAR_STRUCT_H
  3. /*
  4.  * The subtree structure contains a subtree prefix which applies to
  5.  * all variables in the associated variable list.
  6.  *
  7.  * By converting to a tree of subtree structures, entries can
  8.  * now be subtrees of another subtree in the structure. i.e:
  9.  * 1.2
  10.  * 1.2.0
  11.  */
  12. #define UCD_REGISTRY_OID_MAX_LEN 128
  13. /*
  14.  * subtree flags 
  15.  */
  16. #define FULLY_QUALIFIED_INSTANCE    0x01
  17. #define SUBTREE_ATTACHED      0x02
  18. typedef struct netsnmp_subtree_s {
  19.     oid    *name_a; /* objid prefix of registered subtree */
  20.     u_char          namelen;    /* number of subid's in name above */
  21.     oid            *start_a; /* objid of start of covered range */
  22.     u_char          start_len;  /* number of subid's in start name */
  23.     oid            *end_a; /* objid of end of covered range   */
  24.     u_char          end_len;    /* number of subid's in end name */
  25.     struct variable *variables; /* pointer to variables array */
  26.     int             variables_len;      /* number of entries in above array */
  27.     int             variables_width;    /* sizeof each variable entry */
  28.     char           *label_a; /* calling module's label */
  29.     netsnmp_session *session;
  30.     u_char          flags;
  31.     u_char          priority;
  32.     int             timeout;
  33.     struct netsnmp_subtree_s *next;       /* List of 'sibling' subtrees */
  34.     struct netsnmp_subtree_s *prev;       /* (doubly-linked list) */
  35.     struct netsnmp_subtree_s *children;   /* List of 'child' subtrees */
  36.     int             range_subid;
  37.     oid             range_ubound;
  38.     netsnmp_handler_registration *reginfo;      /* new API */
  39.     int             cacheid;
  40.     int             global_cacheid;
  41. } netsnmp_subtree;
  42. /*
  43.  * This is a new variable structure that doesn't have as much memory
  44.  * tied up in the object identifier.  It's elements have also been re-arranged
  45.  * so that the name field can be variable length.  Any number of these
  46.  * structures can be created with lengths tailor made to a particular
  47.  * application.  The first 5 elements of the structure must remain constant.
  48.  */
  49. struct variable1 {
  50.     u_char          magic;      /* passed to function as a hint */
  51.     u_char          type;       /* type of variable */
  52.     u_short         acl;        /* access control list for variable */
  53.     FindVarMethod  *findVar;    /* function that finds variable */
  54.     u_char          namelen;    /* length of name below */
  55.     oid             name[1];    /* object identifier of variable */
  56. };
  57. struct variable2 {
  58.     u_char          magic;      /* passed to function as a hint */
  59.     u_char          type;       /* type of variable */
  60.     u_short         acl;        /* access control list for variable */
  61.     FindVarMethod  *findVar;    /* function that finds variable */
  62.     u_char          namelen;    /* length of name below */
  63.     oid             name[2];    /* object identifier of variable */
  64. };
  65. struct variable3 {
  66.     u_char          magic;      /* passed to function as a hint */
  67.     u_char          type;       /* type of variable */
  68.     u_short         acl;        /* access control list for variable */
  69.     FindVarMethod  *findVar;    /* function that finds variable */
  70.     u_char          namelen;    /* length of name below */
  71.     oid             name[3];    /* object identifier of variable */
  72. };
  73. struct variable4 {
  74.     u_char          magic;      /* passed to function as a hint */
  75.     u_char          type;       /* type of variable */
  76.     u_short         acl;        /* access control list for variable */
  77.     FindVarMethod  *findVar;    /* function that finds variable */
  78.     u_char          namelen;    /* length of name below */
  79.     oid             name[4];    /* object identifier of variable */
  80. };
  81. struct variable7 {
  82.     u_char          magic;      /* passed to function as a hint */
  83.     u_char          type;       /* type of variable */
  84.     u_short         acl;        /* access control list for variable */
  85.     FindVarMethod  *findVar;    /* function that finds variable */
  86.     u_char          namelen;    /* length of name below */
  87.     oid             name[7];    /* object identifier of variable */
  88. };
  89. struct variable8 {
  90.     u_char          magic;      /* passed to function as a hint */
  91.     u_char          type;       /* type of variable */
  92.     u_short         acl;        /* access control list for variable */
  93.     FindVarMethod  *findVar;    /* function that finds variable */
  94.     u_char          namelen;    /* length of name below */
  95.     oid             name[8];    /* object identifier of variable */
  96. };
  97. struct variable13 {
  98.     u_char          magic;      /* passed to function as a hint */
  99.     u_char          type;       /* type of variable */
  100.     u_short         acl;        /* access control list for variable */
  101.     FindVarMethod  *findVar;    /* function that finds variable */
  102.     u_char          namelen;    /* length of name below */
  103.     oid             name[13];   /* object identifier of variable */
  104. };
  105. #endif                          /* VAR_STRUCT_H */