Loading...
Searching...
No Matches
out.h
Go to the documentation of this file.
#ifndef LY_OUT_H_
#define LY_OUT_H_
#include <stdio.h>
#include <sys/types.h>
#ifdef _MSC_VER
# define ssize_t SSIZE_T
#endif
#include "log.h"
#ifdef __cplusplus
extern "C" {
#endif
struct ly_out;
#define LY_PRINT_SHRINK 0x02
typedef enum LY_OUT_TYPE {
LY_OUT_ERROR = -1,
LY_OUT_FD,
LY_OUT_FDSTREAM,
LY_OUT_FILE,
LY_OUT_FILEPATH,
LY_OUT_MEMORY,
LY_OUT_CALLBACK
} LY_OUT_TYPE;
LIBYANG_API_DECL LY_OUT_TYPE ly_out_type(const struct ly_out *out);
LIBYANG_API_DECL LY_ERR ly_out_reset(struct ly_out *out);
typedef ssize_t (*ly_write_clb)(void *user_data, const void *buf, size_t count);
LIBYANG_API_DECL LY_ERR ly_out_new_clb(ly_write_clb writeclb, void *user_data, struct ly_out **out);
LIBYANG_API_DECL ly_write_clb ly_out_clb(struct ly_out *out, ly_write_clb writeclb);
LIBYANG_API_DECL void *ly_out_clb_arg(struct ly_out *out, void *arg);
LIBYANG_API_DECL LY_ERR ly_out_new_fd(int fd, struct ly_out **out);
LIBYANG_API_DECL int ly_out_fd(struct ly_out *out, int fd);
LIBYANG_API_DECL LY_ERR ly_out_new_file(FILE *f, struct ly_out **out);
LIBYANG_API_DECL FILE *ly_out_file(struct ly_out *out, FILE *f);
LIBYANG_API_DECL LY_ERR ly_out_new_memory(char **strp, size_t size, struct ly_out **out);
LIBYANG_API_DECL char *ly_out_memory(struct ly_out *out, char **strp, size_t size);
LIBYANG_API_DECL LY_ERR ly_out_new_filepath(const char *filepath, struct ly_out **out);
LIBYANG_API_DECL const char *ly_out_filepath(struct ly_out *out, const char *filepath);
LIBYANG_API_DECL LY_ERR ly_print(struct ly_out *out, const char *format, ...);
LIBYANG_API_DECL void ly_print_flush(struct ly_out *out);
LIBYANG_API_DECL LY_ERR ly_write(struct ly_out *out, const char *buf, size_t len);
LIBYANG_API_DECL size_t ly_out_printed(const struct ly_out *out);
LIBYANG_API_DECL size_t ly_out_printed_total(const struct ly_out *out);
LIBYANG_API_DECL void ly_out_free(struct ly_out *out, void (*clb_arg_destructor)(void *arg), ly_bool destroy);
#ifdef __cplusplus
}
#endif
#endif /* LY_OUT_H_ */
LY_ERR
LY_ERR
libyang's error codes returned by the libyang functions.
Definition log.h:237
ly_out_filepath
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.
ly_out_new_file
LIBYANG_API_DECL LY_ERR ly_out_new_file(FILE *f, struct ly_out **out)
Create printer handler using file stream.
ly_print
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.
ly_out_new_memory
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_printed_total
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.
LY_OUT_TYPE
LY_OUT_TYPE
Types of the printer's output.
Definition out.h:105
ly_out_reset
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...
ly_out_free
LIBYANG_API_DECL void ly_out_free(struct ly_out *out, void(*clb_arg_destructor)(void *arg), ly_bool destroy)
Free the printer handler.
ly_out_new_clb
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_new_filepath
LIBYANG_API_DECL LY_ERR ly_out_new_filepath(const char *filepath, struct ly_out **out)
Create printer handler file of the given filename.
ly_out_new_fd
LIBYANG_API_DECL LY_ERR ly_out_new_fd(int fd, struct ly_out **out)
Create printer handler using file descriptor.
ly_out_file
LIBYANG_API_DECL FILE * ly_out_file(struct ly_out *out, FILE *f)
Get or reset file stream printer handler.
ly_out_type
LIBYANG_API_DECL LY_OUT_TYPE ly_out_type(const struct ly_out *out)
Get output type of the printer handler.
ly_out_clb_arg
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.
ly_out_fd
LIBYANG_API_DECL int ly_out_fd(struct ly_out *out, int fd)
Get or reset file descriptor printer handler.
ly_out_memory
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.
ly_out_printed
LIBYANG_API_DECL size_t ly_out_printed(const struct ly_out *out)
Get the number of printed bytes by the last function.
ly_print_flush
LIBYANG_API_DECL void ly_print_flush(struct ly_out *out)
Flush the output from any internal buffers and clean any auxiliary data.
ly_write
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_write_clb
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:147
ly_out_clb
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.
LY_OUT_CALLBACK
@ LY_OUT_CALLBACK
Definition out.h:112
LY_OUT_FILE
@ LY_OUT_FILE
Definition out.h:109
LY_OUT_MEMORY
@ LY_OUT_MEMORY
Definition out.h:111
LY_OUT_ERROR
@ LY_OUT_ERROR
Definition out.h:106
LY_OUT_FD
@ LY_OUT_FD
Definition out.h:107
LY_OUT_FDSTREAM
@ LY_OUT_FDSTREAM
Definition out.h:108
LY_OUT_FILEPATH
@ LY_OUT_FILEPATH
Definition out.h:110
ly_out
Printer output structure specifying the type of data output.
log.h
Logger manipulation routines and error definitions.
ly_bool
uint8_t ly_bool
Type to indicate boolean value.
Definition log.h:35