[svn] commit: r291 - in /branches/jelte-datadef/src/lib/cc/cpp: Makefile.am data.cc data.h data_def.cc data_def.h parkinglot.data parkinglot.spec test.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Wed Nov 4 16:13:49 UTC 2009
Author: jelte
Date: Wed Nov 4 16:13:49 2009
New Revision: 291
Log:
start with data specification and validation part
added temporary test.cc and two data files for immediate testing
Added:
branches/jelte-datadef/src/lib/cc/cpp/data_def.cc
branches/jelte-datadef/src/lib/cc/cpp/data_def.h
branches/jelte-datadef/src/lib/cc/cpp/parkinglot.data
branches/jelte-datadef/src/lib/cc/cpp/parkinglot.spec
branches/jelte-datadef/src/lib/cc/cpp/test.cc
Modified:
branches/jelte-datadef/src/lib/cc/cpp/Makefile.am
branches/jelte-datadef/src/lib/cc/cpp/data.cc
branches/jelte-datadef/src/lib/cc/cpp/data.h
Modified: branches/jelte-datadef/src/lib/cc/cpp/Makefile.am
==============================================================================
--- branches/jelte-datadef/src/lib/cc/cpp/Makefile.am (original)
+++ branches/jelte-datadef/src/lib/cc/cpp/Makefile.am Wed Nov 4 16:13:49 2009
@@ -1,4 +1,7 @@
AM_CPPFLAGS = -I$(top_srcdir)/src/lib/cc/cpp -I$(top_srcdir)/ext
+bin_PROGRAMS = test
+test_SOURCES = test.cc
+test_LDADD = libcc.a
lib_LIBRARIES = libcc.a
-libcc_a_SOURCES = data.cc data.h session.cc session.h
+libcc_a_SOURCES = data.cc data.h data_def.h data_def.cc session.cc session.h
Modified: branches/jelte-datadef/src/lib/cc/cpp/data.cc
==============================================================================
--- branches/jelte-datadef/src/lib/cc/cpp/data.cc (original)
+++ branches/jelte-datadef/src/lib/cc/cpp/data.cc Wed Nov 4 16:13:49 2009
@@ -289,7 +289,9 @@
in.get();
pos++;
p.second = Element::create_from_string(in, line, pos);
- if (!p.second) { return ElementPtr(); };
+ if (!p.second) {
+ throw ParseError(std::string("missing map value for ") + p.first, line, pos);
+ };
m.insert(p);
skip_to(in, line, pos, ",}", " \t\n");
c = in.get();
@@ -298,8 +300,6 @@
return Element::create(m);
}
-//ElementPtr
-//Element::create_from_string(std::stringstream &in)
ElementPtr
Element::create_from_string(std::istream &in) throw(ParseError)
{
@@ -364,7 +364,6 @@
if (el_read) {
return element;
} else {
- // throw exception?
throw ParseError("nothing read");
}
}
Modified: branches/jelte-datadef/src/lib/cc/cpp/data.h
==============================================================================
--- branches/jelte-datadef/src/lib/cc/cpp/data.h (original)
+++ branches/jelte-datadef/src/lib/cc/cpp/data.h Wed Nov 4 16:13:49 2009
@@ -104,6 +104,7 @@
virtual ElementPtr get(const std::string& name) { throw TypeError(); } ;
virtual void set(const std::string& name, ElementPtr element) { throw TypeError(); };
virtual void remove(const std::string& name) { throw TypeError(); };
+ virtual bool contains(const std::string& s) { throw TypeError(); }
virtual ElementPtr find(const std::string& identifier) { throw TypeError(); };
virtual bool find(const std::string& id, ElementPtr& t) { return false; };
@@ -248,6 +249,7 @@
ElementPtr get(const std::string& s) { return m[s]; };
void set(const std::string& s, ElementPtr p) { m[s] = p; };
void remove(const std::string& s) { m.erase(s); }
+ bool contains(const std::string& s) { return m.find(s) != m.end(); }
std::string str();
std::string str_xml(size_t prefix = 0);
std::string to_wire(int omit_length = 1);
More information about the bind10-changes
mailing list