container_null.c

00001 /*
00002  * container_null.c
00003  * $Id: container_null.c 14169 2006-01-25 16:28:12Z dts12 $
00004  *
00005  * see comments in header file.
00006  *
00007  */
00008 
00009 #include <net-snmp/net-snmp-config.h>
00010 
00011 #if HAVE_IO_H
00012 #include <io.h>
00013 #endif
00014 #include <stdio.h>
00015 #if HAVE_STDLIB_H
00016 #include <stdlib.h>
00017 #endif
00018 #if HAVE_MALLOC_H
00019 #include <malloc.h>
00020 #endif
00021 #include <sys/types.h>
00022 #if HAVE_STRING_H
00023 #include <string.h>
00024 #else
00025 #include <strings.h>
00026 #endif
00027 
00028 #include <net-snmp/net-snmp-includes.h>
00029 #include <net-snmp/types.h>
00030 #include <net-snmp/library/snmp_api.h>
00031 #include <net-snmp/library/container.h>
00032 #include <net-snmp/library/container_null.h>
00033 #include <net-snmp/library/tools.h>
00034 #include <net-snmp/library/snmp_assert.h>
00035 
00053 /**********************************************************************
00054  *
00055  * container
00056  *
00057  */
00058 static void *
00059 _null_find(netsnmp_container *container, const void *data)
00060 {
00061     DEBUGMSGTL(("container:null:find","in\n"));
00062     return NULL;
00063 }
00064 
00065 static void *
00066 _null_find_next(netsnmp_container *container, const void *data)
00067 {
00068     DEBUGMSGTL(("container:null:find_next","in\n"));
00069     return NULL;
00070 }
00071 
00072 static int
00073 _null_insert(netsnmp_container *container, const void *data)
00074 {
00075     DEBUGMSGTL(("container:null:insert","in\n"));
00076     return 0;
00077 }
00078 
00079 static int
00080 _null_remove(netsnmp_container *container, const void *data)
00081 {
00082     DEBUGMSGTL(("container:null:remove","in\n"));
00083     return 0;
00084 }
00085 
00086 static int
00087 _null_free(netsnmp_container *container)
00088 {
00089     DEBUGMSGTL(("container:null:free","in\n"));
00090     free(container);
00091     return 0;
00092 }
00093 
00094 static int
00095 _null_init(netsnmp_container *container)
00096 {
00097     DEBUGMSGTL(("container:null:","in\n"));
00098     return 0;
00099 }
00100 
00101 static size_t
00102 _null_size(netsnmp_container *container)
00103 {
00104     DEBUGMSGTL(("container:null:size","in\n"));
00105     return 0;
00106 }
00107 
00108 static void
00109 _null_for_each(netsnmp_container *container, netsnmp_container_obj_func *f,
00110              void *context)
00111 {
00112     DEBUGMSGTL(("container:null:for_each","in\n"));
00113 }
00114 
00115 static netsnmp_void_array *
00116 _null_get_subset(netsnmp_container *container, void *data)
00117 {
00118     DEBUGMSGTL(("container:null:get_subset","in\n"));
00119     return NULL;
00120 }
00121 
00122 static void
00123 _null_clear(netsnmp_container *container, netsnmp_container_obj_func *f,
00124                  void *context)
00125 {
00126     DEBUGMSGTL(("container:null:clear","in\n"));
00127 }
00128 
00129 /**********************************************************************
00130  *
00131  * factory
00132  *
00133  */
00134 
00135 netsnmp_container *
00136 netsnmp_container_get_null(void)
00137 {
00138     /*
00139      * allocate memory
00140      */
00141     netsnmp_container *c;
00142     DEBUGMSGTL(("container:null:get_null","in\n"));
00143     c = SNMP_MALLOC_TYPEDEF(netsnmp_container);
00144     if (NULL==c) {
00145         snmp_log(LOG_ERR, "couldn't allocate memory\n");
00146         return NULL;
00147     }
00148 
00149     c->container_data = NULL;
00150         
00151     c->get_size = _null_size;
00152     c->init = _null_init;
00153     c->cfree = _null_free;
00154     c->insert = _null_insert;
00155     c->remove = _null_remove;
00156     c->find = _null_find;
00157     c->find_next = _null_find_next;
00158     c->get_subset = _null_get_subset;
00159     c->get_iterator = 0; /* _null_iterator; */
00160     c->for_each = _null_for_each;
00161     c->clear = _null_clear;
00162        
00163     return c;
00164 }
00165 
00166 netsnmp_factory *
00167 netsnmp_container_get_null_factory(void)
00168 {
00169     static netsnmp_factory f = { "null",
00170                                  (netsnmp_factory_produce_f*)
00171                                  netsnmp_container_get_null};
00172     
00173     DEBUGMSGTL(("container:null:get_null_factory","in\n"));
00174     return &f;
00175 }
00176 
00177 void
00178 netsnmp_container_null_init(void)
00179 {
00180     netsnmp_container_register("null",
00181                                netsnmp_container_get_null_factory());
00182 }

net-snmpに対してSat Sep 5 13:14:20 2009に生成されました。  doxygen 1.4.7