diff --git a/src/lib/cc/cpp/data_def.h b/src/lib/cc/cpp/data_def.h index 95b8cd59e7..e5a28f8039 100644 --- a/src/lib/cc/cpp/data_def.h +++ b/src/lib/cc/cpp/data_def.h @@ -7,6 +7,12 @@ namespace isc { namespace data { + /// + /// A standard DataDefinition exception that is thrown when a + /// .spec file could not be parsed. + /// + /// TODO: use jinmei's exception class as a base and not c_str in + /// what() there class DataDefinitionError : public std::exception { public: DataDefinitionError(std::string m = "Data definition is invalid") : msg(m) {} @@ -16,9 +22,19 @@ namespace isc { namespace data { std::string msg; }; + /// + /// The \c DataDefinition class holds a data specification. + /// Each module should have a .spec file containing the specification + /// for configuration and commands for that module. + /// This class holds that specification, and provides a function to + /// validate a set of data, to see whether it conforms to the given + /// specification class DataDefinition { public: explicit DataDefinition() {}; + /// Create a \c DataDefinition instance with the given data as + /// the specification + /// \param e The Element containing the data specification explicit DataDefinition(ElementPtr e) : definition(e) {}; // todo: make check default false, or leave out option completely and always check? explicit DataDefinition(std::istream& in, const bool check = true)