You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-11-05 04:50:35 +03:00
73 lines
1.5 KiB
C
73 lines
1.5 KiB
C
#ifndef NETSNMP_FACTORY_H
|
|
#define NETSNMP_FACTORY_H
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef void * (netsnmp_factory_produce_f)(void);
|
|
typedef int (netsnmp_factory_produce_noalloc_f)(void *);
|
|
|
|
typedef struct netsnmp_factory_s {
|
|
/*
|
|
* a string describing the product the factory creates
|
|
*/
|
|
const char *product;
|
|
|
|
/*
|
|
* a function to create an object in newly allcoated memory
|
|
*/
|
|
netsnmp_factory_produce_f *produce;
|
|
|
|
/*
|
|
* a function to create an object in previously allcoated memory
|
|
*/
|
|
netsnmp_factory_produce_noalloc_f *produce_noalloc;
|
|
|
|
} netsnmp_factory;
|
|
|
|
/*
|
|
* init factory registry
|
|
*/
|
|
void netsnmp_factory_init(void);
|
|
|
|
/*
|
|
* register a factory type
|
|
*/
|
|
int netsnmp_factory_register(netsnmp_factory *f);
|
|
|
|
/*
|
|
* get a factory
|
|
*/
|
|
netsnmp_factory* netsnmp_factory_get(const char* product);
|
|
|
|
/*
|
|
* ask a factory to produce an object
|
|
*/
|
|
void * netsnmp_factory_produce(const char* product);
|
|
|
|
/*
|
|
* ask a factory to produce an object in the provided memory
|
|
*/
|
|
int netsnmp_factory_produce_noalloc(const char *product, void *memory);
|
|
|
|
/*
|
|
* factory return codes
|
|
*/
|
|
enum {
|
|
FACTORY_NOERROR = 0,
|
|
FACTORY_EXISTS,
|
|
FACTORY_NOTFOUND,
|
|
FACTORY_NOMEMORY,
|
|
FACTORY_GENERR,
|
|
FACTORY_MAXIMUM_ERROR
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#endif /* NETSNMP_FACTORY_H */
|