|  | Kea 3.0.0
    | 
JSON adaptor between canonical Kea and YANG models. More...
#include <adaptor.h>
| Public Member Functions | |
| virtual | ~Adaptor ()=default | 
| Destructor. | |
| Static Public Member Functions | |
| static void | fromParent (const std::string &name, isc::data::ConstElementPtr parent, isc::data::ConstElementPtr list) | 
| Moves a parameter from parent to a list of children. | |
| static isc::data::ConstElementPtr | getContext (isc::data::ConstElementPtr parent) | 
| Get user context. | |
| static void | modify (isc::data::ConstElementPtr path, isc::data::ConstElementPtr actions, isc::data::ElementPtr config) | 
| Modify a configuration in its JSON element format. | |
| static void | toParent (const std::string &name, isc::data::ElementPtr parent, isc::data::ConstElementPtr list) | 
| Moves a parameter to a parent. | |
JSON adaptor between canonical Kea and YANG models.
An adaptor slightly modifies a JSON configuration between canonical Kea what required or rendered by a YANG model, e.g. moving a parameter to/from a parent. The basic adaptor provides a set of tools.
| 
 | virtualdefault | 
Destructor.
| 
 | static | 
Moves a parameter from parent to a list of children.
Move a parameter from the parent to each item in a list. If the parameter exists in a child, it is skipped for this particular child, not overridden.
| name | The parameter name. | 
| parent | The parent element. | 
| list | The children list. | 
Definition at line 37 of file adaptor.cc.
Referenced by isc::yang::AdaptorPool::fromSubnetIetf6().
| 
 | static | 
Get user context.
Get user-context and/or comment and return it with the comment if exists moved inside the user-context (without checking if there is already a comment as it should never be the case).
This behavior is used to handle comments. For historical purposes Kea allows to define comments in some scopes. Once the user-context has been introduced, the comment (as a separate text field) disappeared and was moved to comment key within user-context. Nevertheless, the old syntax is still supported.
Definition at line 20 of file adaptor.cc.
References isc::data::copy(), and Element::createMap().
Referenced by isc::yang::Translator::checkAndSetUserContext().
| 
 | static | 
Modify a configuration in its JSON element format.
Apply recursively starting at the beginning of the path.
Smart merging tool, e.g. completing an ElementPtr received from YANG.
A modification is a path and actions:
path item can be:
}: current scope is a list, go down to the item using the key / value pair.
For instance to add a control-socket entry in a configuration from a generic (vs Kea) model:
| path | The search list to follow down to the place to apply the action list. | 
| actions | The action list | 
| config | The configuration (JSON map) to modify. | 
Definition at line 296 of file adaptor.cc.
| 
 | static | 
Moves a parameter to a parent.
Move a parameter from children to the parent. All children on the list must have the parameter specified and it has to have the same value.
| name | The parameter name. | 
| parent | The parent element. | 
| list | The children list. | 
Definition at line 53 of file adaptor.cc.
References isc_throw.
Referenced by isc::yang::AdaptorPool::toSubnetIetf6().