parse.h

Go to the documentation of this file.
00001 /*
00002  * parse.h 
00003  *
00004  * a Net::DNS like library for C
00005  * LibDNS Team @ NLnet Labs
00006  * (c) NLnet Labs, 2005-2006
00007  * See the file LICENSE for the license
00008  */
00009 
00010 #ifndef LDNS_PARSE_H
00011 #define LDNS_PARSE_H
00012 
00013 #include <ldns/common.h>
00014 #include <ldns/buffer.h>
00015 
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019 
00020 #define LDNS_PARSE_SKIP_SPACE           "\f\n\r\v"
00021 #define LDNS_PARSE_NORMAL               " \f\n\r\t\v"
00022 #define LDNS_PARSE_NO_NL                " \t"
00023 #define LDNS_MAX_LINELEN                10230
00024 #define LDNS_MAX_KEYWORDLEN             32
00025 
00026 
00039 enum ldns_enum_directive
00040 {
00041         LDNS_DIR_TTL,
00042         LDNS_DIR_ORIGIN,
00043         LDNS_DIR_INCLUDE
00044 };
00045 typedef enum ldns_enum_directive ldns_directive;
00046 
00057 ssize_t ldns_fget_token(FILE *f, char *token, const char *delim, size_t limit);
00058 
00070 ssize_t ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *line_nr);
00071 
00082 ssize_t ldns_bget_token(ldns_buffer *b, char *token, const char *delim, size_t limit);
00083 
00084 /*
00085  * searches for keyword and delim in a file. Gives everything back
00086  * after the keyword + k_del until we hit d_del
00087  * \param[in] f file pointer to read from
00088  * \param[in] keyword keyword to look for
00089  * \param[in] k_del keyword delimeter 
00090  * \param[out] data the data found 
00091  * \param[in] d_del the data delimeter
00092  * \param[in] data_limit maximum size the the data buffer
00093  * \return the number of character read
00094  */
00095 ssize_t ldns_fget_keyword_data(FILE *f, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit);
00096 
00097 /*
00098  * searches for keyword and delim. Gives everything back
00099  * after the keyword + k_del until we hit d_del
00100  * \param[in] f file pointer to read from
00101  * \param[in] keyword keyword to look for
00102  * \param[in] k_del keyword delimeter 
00103  * \param[out] data the data found 
00104  * \param[in] d_del the data delimeter
00105  * \param[in] data_limit maximum size the the data buffer
00106  * \param[in] line_nr pointer to an integer containing the current line number (for
00107 debugging purposes)
00108  * \return the number of character read
00109  */
00110 ssize_t ldns_fget_keyword_data_l(FILE *f, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit, int *line_nr);
00111 
00112 /*
00113  * searches for keyword and delim in a buffer. Gives everything back
00114  * after the keyword + k_del until we hit d_del
00115  * \param[in] b buffer pointer to read from
00116  * \param[in] keyword keyword to look for
00117  * \param[in] k_del keyword delimeter 
00118  * \param[out] data the data found 
00119  * \param[in] d_del the data delimeter
00120  * \param[in] data_limit maximum size the the data buffer
00121  * \return the number of character read
00122  */
00123 ssize_t ldns_bget_keyword_data(ldns_buffer *b, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit);
00124 
00132 int ldns_bgetc(ldns_buffer *buffer);
00133 
00141 void ldns_bskipcs(ldns_buffer *buffer, const char *s);
00142 
00150 void ldns_fskipcs(FILE *fp, const char *s);
00151 
00152 
00161 void ldns_fskipcs_l(FILE *fp, const char *s, int *line_nr);
00162 
00163 #ifdef __cplusplus
00164 }
00165 #endif
00166 
00167 #endif /* LDNS_PARSE_H */

Generated on Fri Jun 8 17:07:46 2012 for ldns by  doxygen 1.4.7