Add types for leaves
Change-Id: Ibea2945920e523d2f3439eed2c12a5d719d178f1
diff --git a/src/schema.hpp b/src/schema.hpp
index 73e89df..e87619b 100644
--- a/src/schema.hpp
+++ b/src/schema.hpp
@@ -19,6 +19,16 @@
Presence,
None,
};
+
+enum class LeafDataTypes {
+ String,
+ Decimal,
+ Bool,
+ Int,
+ Uint,
+ Enum,
+};
+
struct container {
yang::ContainerTraits m_presence;
};
@@ -26,6 +36,8 @@
std::set<std::string> m_keys;
};
struct leaf {
+ yang::LeafDataTypes m_type;
+ std::set<std::string> m_enumValues;
};
}
@@ -54,8 +66,11 @@
bool isList(const path_& location, const std::string& name) const;
void addList(const std::string& location, const std::string& name, const std::set<std::string>& keys);
bool isPresenceContainer(const path_& location, const std::string& name) const;
- void addLeaf(const std::string& location, const std::string& name);
+ void addLeaf(const std::string& location, const std::string& name, const yang::LeafDataTypes& type);
+ void addLeafEnum(const std::string& location, const std::string& name, std::set<std::string> enumValues);
+ bool leafEnumHasValue(const path_& location, const std::string& name, const std::string& value) const;
bool isLeaf(const path_& location, const std::string& name) const;
+ yang::LeafDataTypes leafType(const path_& location, const std::string& name) const;
private:
const std::unordered_map<std::string, NodeType>& children(const std::string& name) const;