Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
view.h
Go to the documentation of this file.
1
/*
2
* services/view.h - named views containing local zones authority service.
3
*
4
* Copyright (c) 2016, NLnet Labs. All rights reserved.
5
*
6
* This software is open source.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* Redistributions of source code must retain the above copyright notice,
13
* this list of conditions and the following disclaimer.
14
*
15
* Redistributions in binary form must reproduce the above copyright notice,
16
* this list of conditions and the following disclaimer in the documentation
17
* and/or other materials provided with the distribution.
18
*
19
* Neither the name of the NLNET LABS nor the names of its contributors may
20
* be used to endorse or promote products derived from this software without
21
* specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
29
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
*/
35
42
43
#ifndef SERVICES_VIEW_H
44
#define SERVICES_VIEW_H
45
#include "
util/rbtree.h
"
46
#include "
util/locks.h
"
47
struct
regional
;
48
struct
config_file
;
49
struct
config_view
;
50
struct
respip_set;
51
52
56
struct
views
{
58
lock_rw_type
lock
;
60
rbtree_type
vtree
;
61
};
62
66
struct
view
{
68
rbnode_type
node
;
72
char
*
name
;
74
struct
local_zones
*
local_zones
;
76
struct
respip_set
*
respip_set
;
79
int
isfirst
;
83
lock_rw_type
lock
;
84
};
85
86
91
struct
views
*
views_create
(
void
);
92
97
void
views_delete
(
struct
views
* v);
98
106
int
views_apply_cfg
(
struct
views
* v,
struct
config_file
* cfg);
107
114
int
view_cmp
(
const
void
* v1,
const
void
* v2);
115
120
void
view_delete
(
struct
view
* v);
121
127
void
views_print
(
struct
views
* v);
128
129
/* Find a view by name.
130
* @param vs: views
131
* @param name: name of the view we are looking for
132
* @param write: 1 for obtaining write lock on found view, 0 for read lock
133
* @return: locked view or NULL.
134
*/
135
struct
view
*
views_find_view
(
struct
views
* vs,
const
char
*
name
,
int
write);
136
137
#endif
/* SERVICES_VIEW_H */
locks.h
lock_rw_type
int lock_rw_type
Definition
locks.h:261
rbtree.h
config_file
Definition
config_file.h:68
config_view
Definition
config_file.h:594
rbnode_type
Definition
rbtree.h:55
rbtree_type
Definition
rbtree.h:76
regional
Definition
regional.h:60
view
Definition
view.h:66
view::name
char * name
Definition
view.h:72
view::node
rbnode_type node
Definition
view.h:68
view::isfirst
int isfirst
Definition
view.h:79
view::local_zones
struct local_zones * local_zones
Definition
view.h:74
view::lock
lock_rw_type lock
Definition
view.h:83
view::respip_set
struct respip_set * respip_set
Definition
view.h:76
views
Definition
view.h:56
views::lock
lock_rw_type lock
Definition
view.h:58
views::vtree
rbtree_type vtree
Definition
view.h:60
views_delete
void views_delete(struct views *v)
views_apply_cfg
int views_apply_cfg(struct views *v, struct config_file *cfg)
views_print
void views_print(struct views *v)
view_cmp
int view_cmp(const void *v1, const void *v2)
views_find_view
struct view * views_find_view(struct views *vs, const char *name, int write)
view_delete
void view_delete(struct view *v)
views_create
struct views * views_create(void)
external
unbound
services
view.h
Generated on
for Electroneum by
1.17.0