libyang  3.12.6
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
out.h
Go to the documentation of this file.
1 
15 #ifndef LY_OUT_H_
16 #define LY_OUT_H_
17 
18 #include <stdio.h>
19 #include <sys/types.h>
20 #ifdef _MSC_VER
21 # define ssize_t SSIZE_T
22 #endif
23 
24 #include "log.h"
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
85 struct ly_out;
86 
90 #define LY_PRINT_SHRINK 0x02
91 
95 typedef enum LY_OUT_TYPE {
96  LY_OUT_ERROR = -1,
103 } LY_OUT_TYPE;
104 
111 LIBYANG_API_DECL LY_OUT_TYPE ly_out_type(const struct ly_out *out);
112 
126 LIBYANG_API_DECL LY_ERR ly_out_reset(struct ly_out *out);
127 
137 typedef ssize_t (*ly_write_clb)(void *user_data, const void *buf, size_t count);
138 
148 LIBYANG_API_DECL LY_ERR ly_out_new_clb(ly_write_clb writeclb, void *user_data, struct ly_out **out);
149 
158 LIBYANG_API_DECL ly_write_clb ly_out_clb(struct ly_out *out, ly_write_clb writeclb);
159 
168 LIBYANG_API_DECL void *ly_out_clb_arg(struct ly_out *out, void *arg);
169 
178 LIBYANG_API_DECL LY_ERR ly_out_new_fd(int fd, struct ly_out **out);
179 
188 LIBYANG_API_DECL int ly_out_fd(struct ly_out *out, int fd);
189 
198 LIBYANG_API_DECL LY_ERR ly_out_new_file(FILE *f, struct ly_out **out);
199 
207 LIBYANG_API_DECL FILE *ly_out_file(struct ly_out *out, FILE *f);
208 
220 LIBYANG_API_DECL LY_ERR ly_out_new_memory(char **strp, size_t size, struct ly_out **out);
221 
232 LIBYANG_API_DECL char *ly_out_memory(struct ly_out *out, char **strp, size_t size);
233 
242 LIBYANG_API_DECL LY_ERR ly_out_new_filepath(const char *filepath, struct ly_out **out);
243 
256 LIBYANG_API_DECL const char *ly_out_filepath(struct ly_out *out, const char *filepath);
257 
267 LIBYANG_API_DECL LY_ERR ly_print(struct ly_out *out, const char *format, ...);
268 
273 LIBYANG_API_DECL void ly_print_flush(struct ly_out *out);
274 
285 LIBYANG_API_DECL LY_ERR ly_write(struct ly_out *out, const char *buf, size_t len);
286 
293 LIBYANG_API_DECL size_t ly_out_printed(const struct ly_out *out);
294 
301 LIBYANG_API_DECL size_t ly_out_printed_total(const struct ly_out *out);
302 
310 LIBYANG_API_DECL void ly_out_free(struct ly_out *out, void (*clb_arg_destructor)(void *arg), ly_bool destroy);
311 
312 #ifdef __cplusplus
313 }
314 #endif
315 
316 #endif /* LY_OUT_H_ */
Printer output structure specifying where the data are printed.
LIBYANG_API_DECL void ly_print_flush(struct ly_out *out)
Flush the output from any internal buffers and clean any auxiliary data.
ssize_t(* ly_write_clb)(void *user_data, const void *buf, size_t count)
Generic write callback for data printed by libyang.
Definition: out.h:137
LIBYANG_API_DECL LY_ERR ly_print(struct ly_out *out, const char *format,...)
Generic printer of the given format string into the specified output.
uint8_t ly_bool
Type to indicate boolean value.
Definition: log.h:28
LIBYANG_API_DECL FILE * ly_out_file(struct ly_out *out, FILE *f)
Get or reset file stream printer handler.
LIBYANG_API_DECL LY_OUT_TYPE ly_out_type(const struct ly_out *out)
Get output type of the printer handler.
LIBYANG_API_DECL const char * ly_out_filepath(struct ly_out *out, const char *filepath)
Get or change the filepath of the file where the printer prints the data.
LIBYANG_API_DECL LY_ERR ly_out_new_clb(ly_write_clb writeclb, void *user_data, struct ly_out **out)
Create printer handler using callback printer function.
LY_OUT_TYPE
Types of the printer&#39;s output.
Definition: out.h:95
LIBYANG_API_DECL int ly_out_fd(struct ly_out *out, int fd)
Get or reset file descriptor printer handler.
LIBYANG_API_DECL ly_write_clb ly_out_clb(struct ly_out *out, ly_write_clb writeclb)
Get or reset callback function associated with a callback printer handler.
LIBYANG_API_DECL LY_ERR ly_out_new_file(FILE *f, struct ly_out **out)
Create printer handler using file stream.
LIBYANG_API_DECL LY_ERR ly_out_new_filepath(const char *filepath, struct ly_out **out)
Create printer handler file of the given filename.
LIBYANG_API_DECL size_t ly_out_printed(const struct ly_out *out)
Get the number of printed bytes by the last function.
LIBYANG_API_DECL LY_ERR ly_out_new_memory(char **strp, size_t size, struct ly_out **out)
Create printer handler using memory to dump data.
LIBYANG_API_DECL LY_ERR ly_out_reset(struct ly_out *out)
Reset the output medium to write from its beginning, so the following printer function will rewrite t...
Definition: out.h:97
LIBYANG_API_DECL void ly_out_free(struct ly_out *out, void(*clb_arg_destructor)(void *arg), ly_bool destroy)
Free the printer handler.
LIBYANG_API_DECL char * ly_out_memory(struct ly_out *out, char **strp, size_t size)
Get or change memory where the data are dumped.
LIBYANG_API_DECL size_t ly_out_printed_total(const struct ly_out *out)
Get the total number of printed bytes of this out structure.
Logger manipulation routines and error definitions.
LIBYANG_API_DECL LY_ERR ly_out_new_fd(int fd, struct ly_out **out)
Create printer handler using file descriptor.
LIBYANG_API_DECL void * ly_out_clb_arg(struct ly_out *out, void *arg)
Get or reset callback function&#39;s argument associated with a callback printer handler.
LIBYANG_API_DECL LY_ERR ly_write(struct ly_out *out, const char *buf, size_t len)
Generic printer of the given string buffer into the specified output.
LY_ERR
libyang&#39;s error codes returned by the libyang functions.
Definition: log.h:240