libyang  2.1.55
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
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 
84 struct ly_out;
85 
89 #define LY_PRINT_SHRINK 0x02
90 
94 typedef enum LY_OUT_TYPE {
95  LY_OUT_ERROR = -1,
103 
110 LIBYANG_API_DECL LY_OUT_TYPE ly_out_type(const struct ly_out *out);
111 
125 LIBYANG_API_DECL LY_ERR ly_out_reset(struct ly_out *out);
126 
136 typedef ssize_t (*ly_write_clb)(void *user_data, const void *buf, size_t count);
137 
147 LIBYANG_API_DECL LY_ERR ly_out_new_clb(ly_write_clb writeclb, void *user_data, struct ly_out **out);
148 
157 LIBYANG_API_DECL ly_write_clb ly_out_clb(struct ly_out *out, ly_write_clb writeclb);
158 
167 LIBYANG_API_DECL void *ly_out_clb_arg(struct ly_out *out, void *arg);
168 
177 LIBYANG_API_DECL LY_ERR ly_out_new_fd(int fd, struct ly_out **out);
178 
187 LIBYANG_API_DECL int ly_out_fd(struct ly_out *out, int fd);
188 
197 LIBYANG_API_DECL LY_ERR ly_out_new_file(FILE *f, struct ly_out **out);
198 
206 LIBYANG_API_DECL FILE *ly_out_file(struct ly_out *out, FILE *f);
207 
219 LIBYANG_API_DECL LY_ERR ly_out_new_memory(char **strp, size_t size, struct ly_out **out);
220 
231 LIBYANG_API_DECL char *ly_out_memory(struct ly_out *out, char **strp, size_t size);
232 
241 LIBYANG_API_DECL LY_ERR ly_out_new_filepath(const char *filepath, struct ly_out **out);
242 
255 LIBYANG_API_DECL const char *ly_out_filepath(struct ly_out *out, const char *filepath);
256 
266 LIBYANG_API_DECL LY_ERR ly_print(struct ly_out *out, const char *format, ...);
267 
272 LIBYANG_API_DECL void ly_print_flush(struct ly_out *out);
273 
284 LIBYANG_API_DECL LY_ERR ly_write(struct ly_out *out, const char *buf, size_t len);
285 
292 LIBYANG_API_DECL size_t ly_out_printed(const struct ly_out *out);
293 
301 LIBYANG_API_DECL void ly_out_free(struct ly_out *out, void (*clb_arg_destructor)(void *arg), ly_bool destroy);
302 
303 #ifdef __cplusplus
304 }
305 #endif
306 
307 #endif /* LY_OUT_H_ */
LY_ERR
libyang's error codes returned by the libyang functions.
Definition: log.h:251
Logger manipulation routines and error definitions.
uint8_t ly_bool
Type to indicate boolean value.
Definition: log.h:28
Printer output structure specifying where the data are printed.
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_print(struct ly_out *out, const char *format,...)
Generic printer of the given format string into the specified output.
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.
LY_OUT_TYPE
Types of the printer's output.
Definition: out.h:94
@ LY_OUT_CALLBACK
Definition: out.h:101
@ LY_OUT_FILE
Definition: out.h:98
@ LY_OUT_MEMORY
Definition: out.h:100
@ LY_OUT_ERROR
Definition: out.h:95
@ LY_OUT_FD
Definition: out.h:96
@ LY_OUT_FDSTREAM
Definition: out.h:97
@ LY_OUT_FILEPATH
Definition: out.h:99
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...
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 LY_ERR ly_out_new_clb(ly_write_clb writeclb, void *user_data, struct ly_out **out)
Create printer handler using callback printer function.
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 LY_ERR ly_out_new_fd(int fd, struct ly_out **out)
Create printer handler using file descriptor.
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 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 int ly_out_fd(struct ly_out *out, int fd)
Get or reset file descriptor printer handler.
LIBYANG_API_DECL FILE * ly_out_file(struct ly_out *out, FILE *f)
Get or reset file stream printer handler.
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 void ly_print_flush(struct ly_out *out)
Flush the output from any internal buffers and clean any auxiliary data.
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.
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:136
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 void * ly_out_clb_arg(struct ly_out *out, void *arg)
Get or reset callback function's argument associated with a callback printer handler.