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

Client class translation between YANG and JSON. More...

#include <translator_class.h>

+ Inheritance diagram for isc::yang::TranslatorClass:

Public Member Functions

 TranslatorClass (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorClass ()
 Destructor. More...
 
isc::data::ElementPtr getClass (const std::string &xpath)
 Get and translate a client class from YANG to JSON. More...
 
void setClass (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set client class from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorOptionDataList
 TranslatorOptionDataList (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorOptionDataList ()
 Destructor. More...
 
isc::data::ConstElementPtr getOptionDataList (const std::string &xpath)
 Get and translate option data list from YANG to JSON. More...
 
void setOptionDataList (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set option data list from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorOptionData
 TranslatorOptionData (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorOptionData ()
 Destructor. More...
 
isc::data::ElementPtr getOptionData (const std::string &xpath)
 Get and translate an option data from YANG to JSON. More...
 
void setOptionData (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set option data 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...
 
- Public Member Functions inherited from isc::yang::TranslatorOptionDefList
 TranslatorOptionDefList (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorOptionDefList ()
 Destructor. More...
 
isc::data::ConstElementPtr getOptionDefList (const std::string &xpath)
 Get and translate option definition list from YANG to JSON. More...
 
void setOptionDefList (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set option definition list from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorOptionDef
 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...
 

Protected Member Functions

isc::data::ElementPtr getClassKea (const std::string &xpath)
 getClass JSON for kea-dhcp[46]. More...
 
void setClassKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setClass for kea-dhcp[46]. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorOptionDataList
isc::data::ConstElementPtr getOptionDataListKea (const std::string &xpath)
 getOptionDataList for kea-dhcp[46]. More...
 
void setOptionDataListKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setOptionDataList for kea-dhcp[46]. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorOptionData
isc::data::ElementPtr getOptionDataKea (const std::string &xpath)
 getOptionData JSON for kea-dhcp[46]. More...
 
void setOptionDataKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setOptionData for kea-dhcp[46]. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorOptionDefList
isc::data::ConstElementPtr getOptionDefListKea (const std::string &xpath)
 getOptionDefList implementation specific to kea-dhcp[46]-server models. More...
 
void setOptionDefListKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setOptionDefList implementation specific to kea-dhcp[46]-server models. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorOptionDef
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

Client class translation between YANG and JSON.

JSON syntax for all Kea servers with client class is:

{
"name": <name>,
"test": <test expression>,
"only-if-required": <only if required flag>,
"option-data": <option data list>,
(DHCPv4 only)
"option-def": <option definition list>,
"next-server": <next server address>,
"server-hostname": <server hostname>,
"boot-file-name": <boot filename>,
"user-context": { <json map> },
"comment": <comment>
}

YANG syntax for kea-dhcp[46] is with the name as the list key:

+--rw name string
+--rw test? string
+--rw only-if-required? boolean
+--rw option-data*
+--rw option-def*
+--rw next-server? inet:ipv4-address
+--rw server-hostname? string
+--rw boot-file-name? string
+--rw user-context? string

An example in JSON and YANG formats:

[
{
"name": "foo",
"test": "''==''",
"only-if-required": false
}
]
/kea-dhcp6-server:config (container)
/kea-dhcp6-server:config/client-class[name='foo'] (list instance)
/kea-dhcp6-server:config/client-class[name='foo']/name = foo
/kea-dhcp6-server:config/client-class[name='foo']/test = ''==''
/kea-dhcp6-server:config/client-class[name='foo']/only-if-required = false

A translator class for converting a client class between YANG and JSON.

Currently supports only kea-dhcp[46]-server. Ietf-dhcpv6-server does not define client class contents.

Definition at line 72 of file translator_class.h.

Constructor & Destructor Documentation

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

Constructor.

Parameters
sessionSysrepo session.
modelModel name.

Definition at line 23 of file translator_class.cc.

isc::yang::TranslatorClass::~TranslatorClass ( )
virtual

Destructor.

Definition at line 31 of file translator_class.cc.

Member Function Documentation

ElementPtr isc::yang::TranslatorClass::getClass ( const std::string &  xpath)

Get and translate a client class from YANG to JSON.

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

Definition at line 35 of file translator_class.cc.

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

Referenced by isc::yang::TranslatorClasses::getClassesKea().

+ Here is the call graph for this function:

ElementPtr isc::yang::TranslatorClass::getClassKea ( const std::string &  xpath)
protected

getClass JSON for kea-dhcp[46].

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

Definition at line 51 of file translator_class.cc.

References isc::yang::TranslatorBasic::getItem(), isc::yang::TranslatorOptionDataList::getOptionDataList(), isc::yang::TranslatorOptionDefList::getOptionDefList(), isc_throw, and isc::yang::TranslatorBasic::model_.

Referenced by getClass().

+ Here is the call graph for this function:

void isc::yang::TranslatorClass::setClass ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)

Translate and set client class from JSON to YANG.

Parameters
xpathThe xpath of the client class.
elemThe JSON element.

Definition at line 97 of file translator_class.cc.

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

Referenced by isc::yang::TranslatorClasses::setClassesKea().

+ Here is the call graph for this function:

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

setClass for kea-dhcp[46].

Parameters
xpathThe xpath of the client class.
elemThe JSON element.

Definition at line 114 of file translator_class.cc.

References isc::yang::Adaptor::getContext(), isc::yang::TranslatorBasic::model_, isc::yang::TranslatorBasic::setItem(), isc::yang::TranslatorOptionDataList::setOptionDataList(), and isc::yang::TranslatorOptionDefList::setOptionDefList().

Referenced by setClass().

+ Here is the call graph for this function:


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