libyang 2.1.148
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
Loading...
Searching...
No Matches
enumeration.c File Reference

Built-in enumeration type plugin. More...

#include "plugins_types.h"
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "libyang.h"
#include "common.h"
#include "compat.h"
#include "plugins_internal.h"
Include dependency graph for enumeration.c:

Go to the source code of this file.

Macros

#define _GNU_SOURCE   /* strdup */
 

Functions

LIBYANG_API_DEF const void * lyplg_type_print_enum (const struct ly_ctx *UNUSED(ctx), const struct lyd_value *value, LY_VALUE_FORMAT format, void *UNUSED(prefix_data), ly_bool *dynamic, size_t *value_len)
 
LIBYANG_API_DEF LY_ERR lyplg_type_store_enum (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 *UNUSED(prefix_data), uint32_t hints, const struct lysc_node *UNUSED(ctx_node), struct lyd_value *storage, struct lys_glob_unres *UNUSED(unres), struct ly_err_item **err)
 

Variables

const struct lyplg_type_record plugins_enumeration []
 Plugin information for enumeration type implementation.
 

Detailed Description

Built-in enumeration 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 enumeration.c.

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE   /* strdup */

Definition at line 15 of file enumeration.c.

Function Documentation

◆ lyplg_type_print_enum()

LIBYANG_API_DEF const void * lyplg_type_print_enum ( const struct ly_ctx * UNUSEDctx,
const struct lyd_value * value,
LY_VALUE_FORMAT format,
void * UNUSEDprefix_data,
ly_bool * dynamic,
size_t * value_len )

Definition at line 138 of file enumeration.c.

◆ lyplg_type_store_enum()

LIBYANG_API_DEF LY_ERR lyplg_type_store_enum ( 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 * UNUSEDprefix_data,
uint32_t hints,
const struct lysc_node * UNUSEDctx_node,
struct lyd_value * storage,
struct lys_glob_unres * UNUSEDunres,
struct ly_err_item ** err )

Definition at line 40 of file enumeration.c.

Variable Documentation

◆ plugins_enumeration

const struct lyplg_type_record plugins_enumeration[]
Initial value:
= {
{
.module = "",
.revision = NULL,
.name = LY_TYPE_ENUM_STR,
.plugin.id = "libyang 2 - enumeration, version 1",
.plugin.store = lyplg_type_store_enum,
.plugin.validate = NULL,
.plugin.compare = lyplg_type_compare_simple,
.plugin.sort = NULL,
.plugin.print = lyplg_type_print_enum,
.plugin.duplicate = lyplg_type_dup_simple,
.plugin.free = lyplg_type_free_simple,
.plugin.lyb_data_len = 4,
},
{0}
}
LIBYANG_API_DEF LY_ERR lyplg_type_store_enum(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 *UNUSED(prefix_data), uint32_t hints, const struct lysc_node *UNUSED(ctx_node), struct lyd_value *storage, struct lys_glob_unres *UNUSED(unres), struct ly_err_item **err)
Definition enumeration.c:40
LIBYANG_API_DEF const void * lyplg_type_print_enum(const struct ly_ctx *UNUSED(ctx), const struct lyd_value *value, LY_VALUE_FORMAT format, void *UNUSED(prefix_data), ly_bool *dynamic, size_t *value_len)
LIBYANG_API_DECL LY_ERR lyplg_type_dup_simple(const struct ly_ctx *ctx, const struct lyd_value *original, struct lyd_value *dup)
Implementation of lyplg_type_dup_clb for a generic simple type.
LIBYANG_API_DECL void lyplg_type_free_simple(const struct ly_ctx *ctx, struct lyd_value *value)
Implementation of lyplg_type_free_clb for a generic simple type.
LIBYANG_API_DECL LY_ERR lyplg_type_compare_simple(const struct lyd_value *val1, const struct lyd_value *val2)
Implementation of lyplg_type_compare_clb for a generic simple type.

Plugin information for enumeration type implementation.

Note that external plugins are supposed to use:

LYPLG_TYPES = {

Definition at line 185 of file enumeration.c.