21     static Value mkCopy(EP value) { 
return (Value(value, 
false)); }
 
   24     static Value mkShare(EP value) { 
return (Value(value, 
true)); }
 
   28     EP 
get() 
const { 
return (value_); }
 
   32     bool isShared()
 const { 
return (shared_); }
 
   38     Value(EP value, 
bool shared) : value_(value), shared_(shared) { }
 
   54 Value<EP> moveComments1(EP element) {
 
   55     bool modified = 
false;
 
   60         typedef std::vector<ElementPtr> ListType;
 
   61         const ListType& list = element->listValue();
 
   62         for (ListType::const_iterator it = list.cbegin();
 
   63              it != list.cend(); ++it) {
 
   64             Value<ElementPtr> item = moveComments1(*it);
 
   65             result->add(item.get());
 
   66             if (!item.isShared()) {
 
   71             return (Value<EP>::mkShare(element));
 
   73             return (Value<EP>::mkCopy(result));
 
   76         return (Value<EP>::mkShare(element));
 
   81     bool has_comment = 
false;
 
   82     typedef std::map<std::string, ConstElementPtr> map_type;
 
   83     const map_type& map = element->mapValue();
 
   84     for (map_type::const_iterator it = map.cbegin(); it != map.cend(); ++it) {
 
   85         if (it->first == 
"comment") {
 
   88         } 
else if (it->first == 
"user-context") {
 
   90             result->set(
"user-context", it->second);
 
   93             Value<ConstElementPtr> item = moveComments1(it->second);
 
   94             result->set(it->first, item.get());
 
   95             if (!item.isShared()) {
 
  101     if (!has_comment && !modified) {
 
  102         return (Value<EP>::mkShare(element));
 
  109         moved->set(
"comment", comment);
 
  113                 merge(moved, previous);
 
  115         result->set(
"user-context", moved);
 
  118     return (Value<EP>::mkCopy(result));
 
  127     Value<ElementPtr> result = moveComments1(element);
 
  128     return (result.get());
 
  132     Value<ConstElementPtr> result = moveComments1(element);
 
  133     return (result.get());
 
boost::shared_ptr< Element > ElementPtr
 
static ElementPtr createMap(const Position &pos=ZERO_POSITION())
Creates an empty MapElement type ElementPtr. 
 
boost::shared_ptr< const Element > ConstElementPtr
 
Defines the logger used by the top-level component of kea-dhcp-ddns. 
 
void merge(ElementPtr element, ConstElementPtr other)
Merges the data from other into element. 
 
ConstElementPtr moveComments(ConstElementPtr element)
Move comment entries to user-context (const variant)