1 #include <net-snmp/net-snmp-config.h>
13 #include <sys/types.h>
20 #include <net-snmp/net-snmp-includes.h>
21 #include <net-snmp/types.h>
22 #include <net-snmp/library/snmp_api.h>
23 #include <net-snmp/library/container.h>
24 #include <net-snmp/library/container_binary_array.h>
25 #include <net-snmp/library/tools.h>
26 #include <net-snmp/library/snmp_assert.h>
31 print_int(netsnmp_index *i, void *v)
33 printf("item %p = %ld\n", i, i->oids[0]);
46 netsnmp_index i1,i2,i3,i4,i5,ix,iy, *ip;
47 netsnmp_index *a[TEST_SIZE] = { &i1, &i2, &i3, &ix, &i4, &i5, &iy };
48 netsnmp_container *c = netsnmp_container_get_binary_array();
51 c->compare = netsnmp_compare_netsnmp_index;
60 i1.len = i2.len = i3.len = i4.len = i5.len = ix.len = iy.len = 1;
62 printf("Creating container...\n");
64 printf("Inserting data...\n");
65 CONTAINER_INSERT(c,&i4);
66 CONTAINER_INSERT(c,&i2);
67 CONTAINER_INSERT(c,&i3);
68 CONTAINER_INSERT(c,&i1);
69 CONTAINER_INSERT(c,&i5);
71 printf("For each...\n");
72 CONTAINER_FOR_EACH(c, print_int, NULL);
76 ip = CONTAINER_FIRST(c);
77 printf("Find first = %p %ld\n",ip, ip->oids[0]);
79 ip = CONTAINER_NEXT(c,ip);
81 printf("Find next = %p %ld\n",ip, ip->oids[0]);
83 printf("Find next = %s\n",ip);
86 for( i=0; i < TEST_SIZE; ++i) {
88 ip = CONTAINER_FIND(c,a[i]);
89 printf("Find %ld = %p %ld\n", a[i]->oids[0], ip, ip ? ip->oids[0] : 0);
90 ip = CONTAINER_NEXT(c,a[i]);
91 printf("Next %ld = %p %ld\n", a[i]->oids[0], ip, ip ? ip->oids[0] : 0);
100 print_string(char *i, void *v)
102 printf("item %s\n", i);
106 my_strcmp(char *lhs, char *rhs)
108 int rc = strcmp(lhs,rhs);
109 /* printf("%s %d %s\n",lhs, rc, rhs); */
116 const char *o1 = "zebra";
117 const char *o2 = "b-two";
118 const char *o3 = "b";
119 const char *o4 = "cedar";
120 const char *o5 = "alpha";
121 const char *ox = "dev";
122 const char *oy = "aa";
125 const char *a[TEST_SIZE] = { o1, o2, o3, ox, o4, o5, oy };
126 netsnmp_container *c = netsnmp_container_get_binary_array();
129 c->compare = my_strcmp;
131 printf("Creating container...\n");
133 printf("Inserting data...\n");
134 CONTAINER_INSERT(c,o4);
135 CONTAINER_INSERT(c,o2);
136 CONTAINER_INSERT(c,o3);
137 CONTAINER_INSERT(c,o1);
138 CONTAINER_INSERT(c,o5);
140 printf("For each...\n");
141 CONTAINER_FOR_EACH(c, print_string, NULL);
145 ip = CONTAINER_FIRST(c);
146 printf("Find first = %s\n",ip);
148 ip = CONTAINER_NEXT(c,ip);
149 printf("Find next = %s\n",ip);
152 for( i=0; i < TEST_SIZE; ++i) {
154 ip = CONTAINER_FIND(c,a[i]);
155 printf("Find %s = %s\n", a[i], ip);
156 ip = CONTAINER_NEXT(c,a[i]);
157 printf("Next %s = %s\n", a[i], ip);
166 main(int argc, char** argv)