[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