Viewing file: text_utils.h (3.4 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef NETSNMP_TEXT_UTILS_H #define NETSNMP_TEXT_UTILS_H
#ifdef __cplusplus extern "C" { #endif
/*------------------------------------------------------------------ * * text file processing * */ netsnmp_container * netsnmp_file_text_parse(netsnmp_file *f, netsnmp_container *cin, int parse_mode, u_int flags, void *context);
#define PM_SAVE_EVERYTHING 1 #define PM_INDEX_STRING_STRING 2 #define PM_USER_FUNCTION 3
#define PM_FLAG_NO_CONTAINER 0x00000001 #define PM_FLAG_SKIP_WHITESPACE 0x00000002
/* * line processing user function */ struct netsnmp_line_process_info_s; /* fwd decl */
typedef struct netsnmp_line_info_s {
size_t index;
char *line; size_t line_len; size_t line_max;
char *start; size_t start_len;
} netsnmp_line_info;
typedef int (Netsnmp_Process_Text_Line) (netsnmp_line_info *line_info, void *mem, struct netsnmp_line_process_info_s* lpi);
typedef struct netsnmp_line_process_info_s {
size_t line_max; /* defaults to STRINGMAX if 0 */ size_t mem_size;
u_int flags;
Netsnmp_Process_Text_Line *process;
void *user_context; } netsnmp_line_process_info; /* * user function return codes */ #define PMLP_RC_STOP_PROCESSING -1 #define PMLP_RC_MEMORY_USED 0 #define PMLP_RC_MEMORY_UNUSED 1
/** ALLOC_LINE: wasteful, but fast */ #define PMLP_FLAG_ALLOC_LINE 0x00000001 /** STRDUP_LINE: slower if you don't keep memory in most cases */ #define PMLP_FLAG_STRDUP_LINE 0x00000002 /** don't strip trailing newlines */ #define PMLP_FLAG_LEAVE_NEWLINE 0x00000004 /** don't skip blank or comment lines */ #define PMLP_FLAG_PROCESS_WHITESPACE 0x00000008 /** just process line, don't save it */ #define PMLP_FLAG_NO_CONTAINER 0x00000010
/* * a few useful pre-defined helpers */
typedef struct netsnmp_token_value_index_s {
char *token; netsnmp_cvalue value; size_t index;
} netsnmp_token_value_index;
netsnmp_container *netsnmp_text_token_container_from_file(const char *file, u_int flags, netsnmp_container *c, void *context); /* * flags */ #define NSTTC_FLAG_TYPE_CONTEXT_DIRECT 0x00000001
#define PMLP_TYPE_UNSIGNED 1 #define PMLP_TYPE_INTEGER 2 #define PMLP_TYPE_STRING 3 #define PMLP_TYPE_BOOLEAN 4
#ifdef __cplusplus } #endif
#endif /* NETSNMP_TEXT_UTILS_H */
|