Kea  1.9.9-git
isc::yang::TranslatorOptionDef Class Reference

Option definition translation between YANG and JSON. More...

#include <translator_option_def.h>

+ Inheritance diagram for isc::yang::TranslatorOptionDef:

Public Member Functions

 TranslatorOptionDef (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorOptionDef ()
 Destructor. More...
 
isc::data::ElementPtr getOptionDef (const std::string &xpath)
 Get and translate an option definition from YANG to JSON. More...
 
void setOptionDef (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set option definition from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorBasic
 TranslatorBasic (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorBasic ()
 Destructor. More...
 
void delItem (const std::string &xpath)
 Delete basic value from YANG. More...
 
isc::data::ElementPtr getItem (const std::string &xpath)
 Get and translate basic value from YANG to JSON. More...
 
isc::data::ElementPtr getItems (const std::string &xpath)
 Get and translate a list of basic values from YANG to JSON. More...
 
sysrepo::S_Iter_Value getIter (const std::string &xpath)
 List iterator methods keeping the session private. More...
 
std::string getNext (sysrepo::S_Iter_Value iter)
 Get xpath of the next YANG list item. More...
 
void setItem (const std::string &xpath, isc::data::ConstElementPtr elem, sr_type_t type)
 Translate and set basic value from JSON to YANG. More...
 

Protected Member Functions

isc::data::ElementPtr getOptionDefKea (const std::string &xpath)
 getOptionDef implementation specific to kea-dhcp[46]-server models. More...
 
void setOptionDefKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setOptionDef implementation specific to kea-dhcp[46]-server models. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from isc::yang::TranslatorBasic
static isc::data::ElementPtr value (sysrepo::S_Val s_val)
 Translate basic value from YANG to JSON. More...
 
static sysrepo::S_Val value (isc::data::ConstElementPtr elem, sr_type_t type)
 Translate basic value from JSON to YANG. More...
 
- Protected Attributes inherited from isc::yang::TranslatorBasic
std::string model_
 The model. More...
 
sysrepo::S_Session session_
 The sysrepo session. More...
 

Detailed Description

Option definition translation between YANG and JSON.

JSON syntax for Kea DHCP servers is:

{
"code": <code>,
"name": <name>,
"space": <space>,
"type": <type>,
"array": <array flag>,
"encapsulate": <encapsulated space>,
"record-types": <record types>,
"user-context": { <json map> },
"comment": "<comment>"
}

YANG syntax for kea-dhcp[46] with code and space as keys is:

+--rw name string
+--rw code uint8 / uint16
+--rw type string
+--rw record-types? string
+--rw space string
+--rw encapsulate? string
+--rw array? boolean
+--rw user-context? string

An example in JSON and YANG formats:

[
{
"code": 100,
"name": "foo",
"space": "isc",
"type": "string",
"array": false
}
]
/kea-dhcp6-server:config (container)
/kea-dhcp6-server:config/
option-def[code='100'][space='isc'] (list instance)
/kea-dhcp6-server:config/
option-def[code='100'][space='isc']/code = 100
/kea-dhcp6-server:config/
option-def[code='100'][space='isc']/space = isc
/kea-dhcp6-server:config/
option-def[code='100'][space='isc']/name = foo
/kea-dhcp6-server:config/
option-def[code='100'][space='isc']/type = string
/kea-dhcp6-server:config/
option-def[code='100'][space='isc']/array = false

A translator class for converting an option definition between YANG and JSON.

Currently supports kea-dhcp[46]-server models.

Todo:
: Support for ietf-dhcpv6-server model.

Definition at line 78 of file translator_option_def.h.

Constructor & Destructor Documentation

isc::yang::TranslatorOptionDef::TranslatorOptionDef ( sysrepo::S_Session  session,
const std::string &  model 
)

Constructor.

Parameters
sessionSysrepo session.
modelModel name.

Definition at line 23 of file translator_option_def.cc.

isc::yang::TranslatorOptionDef::~TranslatorOptionDef ( )
virtual

Destructor.

Definition at line 28 of file translator_option_def.cc.

Member Function Documentation

ElementPtr isc::yang::TranslatorOptionDef::getOptionDef ( const std::string &  xpath)

Get and translate an option definition from YANG to JSON.

Parameters
xpathThe xpath of the option definition.
Returns
JSON representation of the option definition.
Exceptions
SysrepoErrorwhen sysrepo raises an error.

Definition at line 32 of file translator_option_def.cc.

References getOptionDefKea(), isc_throw, isc::yang::TranslatorBasic::model_, and isc::Exception::what().

Referenced by isc::yang::TranslatorOptionDefList::getOptionDefListKea().

+ Here is the call graph for this function:

ElementPtr isc::yang::TranslatorOptionDef::getOptionDefKea ( const std::string &  xpath)
protected

getOptionDef implementation specific to kea-dhcp[46]-server models.

Parameters
xpathThe xpath of the option definition.
Returns
JSON representation of the option definition.
Exceptions
SysrepoErrorwhen sysrepo raises an error.
BadValueon option definition without name or type.

Definition at line 48 of file translator_option_def.cc.

References isc::yang::TranslatorBasic::getItem(), and isc_throw.

Referenced by getOptionDef().

+ Here is the call graph for this function:

void isc::yang::TranslatorOptionDef::setOptionDef ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)

Translate and set option definition from JSON to YANG.

Parameters
xpathThe xpath of the option definition..
elemThe JSON element.

Definition at line 87 of file translator_option_def.cc.

References isc_throw, isc::yang::TranslatorBasic::model_, setOptionDefKea(), and isc::Exception::what().

Referenced by isc::yang::TranslatorOptionDefList::setOptionDefListKea().

+ Here is the call graph for this function:

void isc::yang::TranslatorOptionDef::setOptionDefKea ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)
protected

setOptionDef implementation specific to kea-dhcp[46]-server models.

Parameters
xpathThe xpath of the option definition.
elemThe JSON element.
Exceptions
BadValueon option definition without name or type.

Definition at line 105 of file translator_option_def.cc.

References isc::yang::Adaptor::getContext(), isc_throw, and isc::yang::TranslatorBasic::setItem().

Referenced by setOptionDef().

+ Here is the call graph for this function:


The documentation for this class was generated from the following files: