libyang
3.6.0
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
|
libyang input structures and functions More...
Go to the source code of this file.
Typedefs | |
typedef enum LY_IN_TYPE | LY_IN_TYPE |
Types of the parser's inputs. More... | |
Enumerations | |
enum | LY_IN_TYPE { LY_IN_ERROR = -1, LY_IN_FD, LY_IN_FILE, LY_IN_FILEPATH, LY_IN_MEMORY } |
Types of the parser's inputs. More... | |
Functions | |
LIBYANG_API_DECL int | ly_in_fd (struct ly_in *in, int fd) |
Get or reset file descriptor input handler. More... | |
LIBYANG_API_DECL FILE * | ly_in_file (struct ly_in *in, FILE *f) |
Get or reset file stream input handler. More... | |
LIBYANG_API_DECL const char * | ly_in_filepath (struct ly_in *in, const char *filepath, size_t len) |
Get or change the filepath of the file where the parser reads the data. More... | |
LIBYANG_API_DECL void | ly_in_free (struct ly_in *in, ly_bool destroy) |
Free the input handler. More... | |
LIBYANG_API_DECL const char * | ly_in_memory (struct ly_in *in, const char *str) |
Get or change memory where the data are read from. More... | |
LIBYANG_API_DECL LY_ERR | ly_in_new_fd (int fd, struct ly_in **in) |
Create input handler using file descriptor. More... | |
LIBYANG_API_DECL LY_ERR | ly_in_new_file (FILE *f, struct ly_in **in) |
Create input handler using file stream. More... | |
LIBYANG_API_DECL LY_ERR | ly_in_new_filepath (const char *filepath, size_t len, struct ly_in **in) |
Create input handler file of the given filename. More... | |
LIBYANG_API_DECL LY_ERR | ly_in_new_memory (const char *str, struct ly_in **in) |
Create input handler using memory to read data. More... | |
LIBYANG_API_DECL size_t | ly_in_parsed (const struct ly_in *in) |
Get the number of parsed bytes by the last function. More... | |
LIBYANG_API_DECL LY_ERR | ly_in_read (struct ly_in *in, void *buf, size_t count) |
Read bytes from an input. More... | |
LIBYANG_API_DECL LY_ERR | ly_in_reset (struct ly_in *in) |
Reset the input medium to read from its beginning, so the following parser function will read from the object's beginning. More... | |
LIBYANG_API_DECL LY_ERR | ly_in_skip (struct ly_in *in, size_t count) |
Just skip bytes in an input. More... | |
LIBYANG_API_DECL LY_IN_TYPE | ly_in_type (const struct ly_in *in) |
Get input type of the input handler. More... | |
libyang input structures and functions
This source code is licensed under BSD 3-Clause License (the "License"). You may not use this file except in compliance with the License. You may obtain a copy of the License at
https://opensource.org/licenses/BSD-3-Clause
Definition in file in.h.
typedef enum LY_IN_TYPE LY_IN_TYPE |
Types of the parser's inputs.
enum LY_IN_TYPE |
Get or reset file descriptor input handler.
[in] | in | Input handler. |
[in] | fd | Optional value of a new file descriptor for the handler. If -1, only the current file descriptor value is returned. |
fd
. LIBYANG_API_DECL FILE* ly_in_file | ( | struct ly_in * | in, |
FILE * | f | ||
) |
Get or reset file stream input handler.
[in] | in | Input handler. |
[in] | f | Optional new file stream for the handler. If NULL, only the current file stream is returned. |
in
is untouched in this case. f
. LIBYANG_API_DECL const char* ly_in_filepath | ( | struct ly_in * | in, |
const char * | filepath, | ||
size_t | len | ||
) |
Get or change the filepath of the file where the parser reads the data.
Note that in case of changing the filepath, the current file is closed and a new one is created/opened instead of renaming the previous file. Also note that the previous filepath string is returned only in case of not changing it's value.
[in] | in | Input handler. |
[in] | filepath | Optional new filepath for the handler. If and only if NULL, the current filepath string is returned. |
[in] | len | Optional number of bytes to use from filepath . If 0, the filepath is considered to be NULL-terminated and the whole string is taken into account. |
filepath
argument is NULL. Free the input handler.
[in] | in | Input handler to free. |
[in] | destroy | Flag to free the input data buffer (for LY_IN_MEMORY) or to close stream/file descriptor (for LY_IN_FD and LY_IN_FILE) |
LIBYANG_API_DECL const char* ly_in_memory | ( | struct ly_in * | in, |
const char * | str | ||
) |
Get or change memory where the data are read from.
[in] | in | Input handler. |
[in] | str | String containing the data to read. The input data are expected to be NULL-terminated. Note that in case the destroy argument of ly_in_free() is used, the input string is passed to free(), so if it is really a static string, do not use the destroy argument! |
str
. Create input handler using file descriptor.
[in] | fd | File descriptor to use. |
[out] | in | Created input handler supposed to be passed to different ly*_parse() functions. |
Create input handler using file stream.
[in] | f | File stream to use. |
[out] | in | Created input handler supposed to be passed to different ly*_parse() functions. |
LIBYANG_API_DECL LY_ERR ly_in_new_filepath | ( | const char * | filepath, |
size_t | len, | ||
struct ly_in ** | in | ||
) |
Create input handler file of the given filename.
[in] | filepath | Path of the file where to read data. |
[in] | len | Optional number of bytes to use from filepath . If 0, the filepath is considered to be NULL-terminated and the whole string is taken into account. |
[out] | in | Created input handler supposed to be passed to different ly*_parse() functions. |
Create input handler using memory to read data.
[in] | str | Pointer where to start reading data. The input data are expected to be NULL-terminated. Note that in case the destroy argument of ly_in_free() is used, the input string is passed to free(), so if it is really a static string, do not use the destroy argument! |
[out] | in | Created input handler supposed to be passed to different ly*_parse() functions. |
LIBYANG_API_DECL size_t ly_in_parsed | ( | const struct ly_in * | in | ) |
Get the number of parsed bytes by the last function.
[in] | in | In structure used. |
Read bytes from an input.
Does not count new lines, which is expected from the caller who has better idea about the content of the read data and can better optimize counting.
[in] | in | Input structure. |
[in] | buf | Destination buffer. |
[in] | count | Number of bytes to read. |
Reset the input medium to read from its beginning, so the following parser function will read from the object's beginning.
Note that in case the underlying output is not seekable (stream referring a pipe/FIFO/socket or the callback output type), nothing actually happens despite the function succeeds. Also note that the medium is not returned to the state it was when the handler was created. For example, file is seeked into the offset zero, not to the offset where it was opened when ly_in_new_file() was called.
[in] | in | Input handler. |
Just skip bytes in an input.
Does not count new lines, which is expected from the caller who has better idea about the content of the skipped data and can better optimize counting.
[in] | in | Input structure. |
[in] | count | Number of bytes to skip. |
LIBYANG_API_DECL LY_IN_TYPE ly_in_type | ( | const struct ly_in * | in | ) |
Get input type of the input handler.
[in] | in | Input handler. |