libyang 2.1.148
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
Loading...
Searching...
No Matches
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
27extern "C" {
28#endif
29
84struct ly_out;
85
89#define LY_PRINT_SHRINK 0x02
90
103
110LIBYANG_API_DECL LY_OUT_TYPE ly_out_type(const struct ly_out *out);
111
125LIBYANG_API_DECL LY_ERR ly_out_reset(struct ly_out *out);
126
136typedef ssize_t (*ly_write_clb)(void *user_data, const void *buf, size_t count);
137
147LIBYANG_API_DECL LY_ERR ly_out_new_clb(ly_write_clb writeclb, void *user_data, struct ly_out **out);
148
157LIBYANG_API_DECL ly_write_clb ly_out_clb(struct ly_out *out, ly_write_clb writeclb);
158
167LIBYANG_API_DECL void *ly_out_clb_arg(struct ly_out *out, void *arg);
168
177LIBYANG_API_DECL LY_ERR ly_out_new_fd(int fd, struct ly_out **out);
178
187LIBYANG_API_DECL int ly_out_fd(struct ly_out *out, int fd);
188
197LIBYANG_API_DECL LY_ERR ly_out_new_file(FILE *f, struct ly_out **out);
198
206LIBYANG_API_DECL FILE *ly_out_file(struct ly_out *out, FILE *f);
207
219LIBYANG_API_DECL LY_ERR ly_out_new_memory(char **strp, size_t size, struct ly_out **out);
220
231LIBYANG_API_DECL char *ly_out_memory(struct ly_out *out, char **strp, size_t size);
232
241LIBYANG_API_DECL LY_ERR ly_out_new_filepath(const char *filepath, struct ly_out **out);
242
255LIBYANG_API_DECL const char *ly_out_filepath(struct ly_out *out, const char *filepath);
256
266LIBYANG_API_DECL LY_ERR ly_print(struct ly_out *out, const char *format, ...);
267
272LIBYANG_API_DECL void ly_print_flush(struct ly_out *out);
273
284LIBYANG_API_DECL LY_ERR ly_write(struct ly_out *out, const char *buf, size_t len);
285
292LIBYANG_API_DECL size_t ly_out_printed(const struct ly_out *out);
293
301LIBYANG_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:248
Logger manipulation routines and error definitions.
uint8_t ly_bool
Type to indicate boolean value.
Definition log.h:35
Printer output structure specifying where the data are printed.
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_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 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 void * ly_out_clb_arg(struct ly_out *out, void *arg)
Get or reset callback function's argument associated with a callback printer handler.
LIBYANG_API_DECL int ly_out_fd(struct ly_out *out, int fd)
Get or reset file descriptor 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(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.