|
Packit Service |
311553 |
/**
|
|
Packit Service |
311553 |
* @file context.h
|
|
Packit Service |
311553 |
* @author Radek Krejci <rkrejci@cesnet.cz>
|
|
Packit Service |
311553 |
* @brief internal context structures and functions
|
|
Packit Service |
311553 |
*
|
|
Packit Service |
311553 |
* Copyright (c) 2015 - 2017 CESNET, z.s.p.o.
|
|
Packit Service |
311553 |
*
|
|
Packit Service |
311553 |
* This source code is licensed under BSD 3-Clause License (the "License").
|
|
Packit Service |
311553 |
* You may not use this file except in compliance with the License.
|
|
Packit Service |
311553 |
* You may obtain a copy of the License at
|
|
Packit Service |
311553 |
*
|
|
Packit Service |
311553 |
* https://opensource.org/licenses/BSD-3-Clause
|
|
Packit Service |
311553 |
*/
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
#ifndef LY_CONTEXT_H_
|
|
Packit Service |
311553 |
#define LY_CONTEXT_H_
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
#include <pthread.h>
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
#include "libyang.h"
|
|
Packit Service |
311553 |
#include "common.h"
|
|
Packit Service |
311553 |
#include "hash_table.h"
|
|
Packit Service |
311553 |
#include "tree_schema.h"
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
struct ly_modules_list {
|
|
Packit Service |
311553 |
char **search_paths;
|
|
Packit Service |
311553 |
int size;
|
|
Packit Service |
311553 |
int used;
|
|
Packit Service |
311553 |
struct lys_module **list;
|
|
Packit Service |
311553 |
/* all (sub)modules that are currently being parsed */
|
|
Packit Service |
311553 |
struct lys_module **parsing_sub_modules;
|
|
Packit Service |
311553 |
/* all already parsed submodules of a module, which is before all its submodules (to mark submodule imports) */
|
|
Packit Service |
311553 |
struct lys_module **parsed_submodules;
|
|
Packit Service |
311553 |
uint8_t parsing_sub_modules_count;
|
|
Packit Service |
311553 |
uint8_t parsed_submodules_count;
|
|
Packit Service |
311553 |
uint16_t module_set_id;
|
|
Packit Service |
311553 |
int flags; /* see @ref contextoptions. */
|
|
Packit Service |
311553 |
};
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
struct ly_ctx {
|
|
Packit Service |
311553 |
struct dict_table dict;
|
|
Packit Service |
311553 |
struct ly_modules_list models;
|
|
Packit Service |
311553 |
ly_module_imp_clb imp_clb;
|
|
Packit Service |
311553 |
void *imp_clb_data;
|
|
Packit Service |
311553 |
ly_module_data_clb data_clb;
|
|
Packit Service |
311553 |
void *data_clb_data;
|
|
Packit Service |
311553 |
#ifdef LY_ENABLED_LYD_PRIV
|
|
Packit Service |
311553 |
void *(*priv_dup_clb)(const void *priv);
|
|
Packit Service |
311553 |
#endif
|
|
Packit Service |
311553 |
pthread_key_t errlist_key;
|
|
Packit Service |
311553 |
uint8_t internal_module_count;
|
|
Packit Service |
311553 |
};
|
|
Packit Service |
311553 |
|
|
Packit Service |
311553 |
#endif /* LY_CONTEXT_H_ */
|