Loading...
Searching...
No Matches
union.c File Reference

Built-in union type plugin. More...

`#include "plugins_types.h"`
`#include <assert.h>`
`#include <stdint.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include "libyang.h"`
`#include "compat.h"`
`#include "ly_common.h"`
`#include "plugins_internal.h"`
Include dependency graph for union.c:

Go to the source code of this file.

## Macros

#define | _GNU_SOURCE /* strdup */
#define | TYPE_IDX_SIZE 4
| Size in bytes of the used type index in the LYB Binary Format.

## Functions

LIBYANG_API_DEF LY_ERR | lyplg_type_compare_union (const struct ly_ctx *ctx, const struct lyd_value *val1, const struct lyd_value *val2)
| Implementation of lyplg_type_compare_clb for the built-in union type.
LIBYANG_API_DEF LY_ERR | lyplg_type_dup_union (const struct ly_ctx *ctx, const struct lyd_value *original, struct lyd_value *dup)
| Implementation of lyplg_type_dup_clb for the built-in union type.
LIBYANG_API_DEF void | lyplg_type_free_union (const struct ly_ctx *ctx, struct lyd_value *value)
| Implementation of lyplg_type_free_clb for the built-in union type.
LIBYANG_API_DEF const void * | lyplg_type_print_union (const struct ly_ctx *ctx, const struct lyd_value *value, LY_VALUE_FORMAT format, void *prefix_data, ly_bool *dynamic, size_t *value_len)
| Implementation of lyplg_type_print_clb for the built-in union type.
LIBYANG_API_DEF int | lyplg_type_sort_union (const struct ly_ctx *ctx, const struct lyd_value *val1, const struct lyd_value *val2)
| Implementation of lyplg_type_sort_clb for the built-in union type.
LIBYANG_API_DEF LY_ERR | lyplg_type_store_union (const struct ly_ctx *ctx, const struct lysc_type *type, const void *value, size_t value_len, uint32_t options, LY_VALUE_FORMAT format, void *prefix_data, uint32_t hints, const struct lysc_node *ctx_node, struct lyd_value *storage, struct lys_glob_unres *unres, struct ly_err_item **err)
| Implementation of lyplg_type_store_clb for the built-in union type.
LIBYANG_API_DEF LY_ERR | lyplg_type_validate_union (const struct ly_ctx *ctx, const struct lysc_type *type, const struct lyd_node *ctx_node, const struct lyd_node *tree, struct lyd_value *storage, struct ly_err_item **err)
| Implementation of lyplg_type_validate_clb for the built-in union type.

## Variables

const struct lyplg_type_record | plugins_union []
| Plugin information for union type implementation.

## Detailed Description

Built-in union type plugin.

Author
  Radek Krejci rkrej.nosp@m.ci@c.nosp@m.esnet.nosp@m..cz

Copyright (c) 2019-2021 CESNET, z.s.p.o.

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 union.c.

## Macro Definition Documentation

## _GNU_SOURCE

#define _GNU_SOURCE /* strdup */

Definition at line 15 of file union.c.

## TYPE_IDX_SIZE

#define TYPE_IDX_SIZE 4

Size in bytes of the used type index in the LYB Binary Format.

Definition at line 46 of file union.c.

## Variable Documentation

## plugins_union

const struct lyplg_type_record plugins_union[]

Initial value:
= {
{
.module = "",
.revision = NULL,
.name = LY_TYPE_UNION_STR,
.plugin.id = "libyang 2 - union,version 1",
.plugin.store = lyplg_type_store_union,
.plugin.validate = lyplg_type_validate_union,
.plugin.compare = lyplg_type_compare_union,
.plugin.sort = lyplg_type_sort_union,
.plugin.print = lyplg_type_print_union,
.plugin.duplicate = lyplg_type_dup_union,
.plugin.free = lyplg_type_free_union,
.plugin.lyb_data_len = -1,
},
{0}
}
lyplg_type_free_union
LIBYANG_API_DEF void lyplg_type_free_union(const struct ly_ctx *ctx, struct lyd_value *value)
Implementation of lyplg_type_free_clb for the built-in union type.
Definition union.c:738
lyplg_type_compare_union
LIBYANG_API_DEF LY_ERR lyplg_type_compare_union(const struct ly_ctx *ctx, const struct lyd_value *val1, const struct lyd_value *val2)
Implementation of lyplg_type_compare_clb for the built-in union type.
Definition union.c:556
lyplg_type_print_union
LIBYANG_API_DEF const void * lyplg_type_print_union(const struct ly_ctx *ctx, const struct lyd_value *value, LY_VALUE_FORMAT format, void *prefix_data, ly_bool *dynamic, size_t *value_len)
Implementation of lyplg_type_print_clb for the built-in union type.
Definition union.c:659
lyplg_type_sort_union
LIBYANG_API_DEF int lyplg_type_sort_union(const struct ly_ctx *ctx, const struct lyd_value *val1, const struct lyd_value *val2)
Implementation of lyplg_type_sort_clb for the built-in union type.
Definition union.c:565
lyplg_type_validate_union
LIBYANG_API_DEF LY_ERR lyplg_type_validate_union(const struct ly_ctx *ctx, const struct lysc_type *type, const struct lyd_node *ctx_node, const struct lyd_node *tree, struct lyd_value *storage, struct ly_err_item **err)
Implementation of lyplg_type_validate_clb for the built-in union type.
Definition union.c:505
lyplg_type_store_union
LIBYANG_API_DEF LY_ERR lyplg_type_store_union(const struct ly_ctx *ctx, const struct lysc_type *type, const void *value, size_t value_len, uint32_t options, LY_VALUE_FORMAT format, void *prefix_data, uint32_t hints, const struct lysc_node *ctx_node, struct lyd_value *storage, struct lys_glob_unres *unres, struct ly_err_item **err)
Implementation of lyplg_type_store_clb for the built-in union type.
Definition union.c:450
lyplg_type_dup_union
LIBYANG_API_DEF LY_ERR lyplg_type_dup_union(const struct ly_ctx *ctx, const struct lyd_value *original, struct lyd_value *dup)
Implementation of lyplg_type_dup_clb for the built-in union type.
Definition union.c:695

Plugin information for union type implementation.

Note that external plugins are supposed to use:

LYPLG_TYPES = {

Definition at line 763 of file union.c.