| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #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 */
|