[svn] commit: r316 - /branches/parkinglot/src/lib/cc/cpp/data.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Nov 20 14:18:37 UTC 2009
Author: jelte
Date: Fri Nov 20 14:18:37 2009
New Revision: 316
Log:
bool type in cpp cc
Modified:
branches/parkinglot/src/lib/cc/cpp/data.cc
Modified: branches/parkinglot/src/lib/cc/cpp/data.cc
==============================================================================
--- branches/parkinglot/src/lib/cc/cpp/data.cc (original)
+++ branches/parkinglot/src/lib/cc/cpp/data.cc Fri Nov 20 14:18:37 2009
@@ -18,6 +18,7 @@
const unsigned char ITEM_HASH = 0x02;
const unsigned char ITEM_LIST = 0x03;
const unsigned char ITEM_NULL = 0x04;
+const unsigned char ITEM_BOOL = 0x05;
const unsigned char ITEM_UTF8 = 0x08;
const unsigned char ITEM_MASK = 0x0f;
@@ -554,6 +555,18 @@
}
ElementPtr
+decode_bool(std::stringstream& in, int& item_length)
+{
+ char c;
+ c = in.get();
+ if (c == 0x01) {
+ return Element::create(true);
+ } else {
+ return Element::create(false);
+ }
+}
+
+ElementPtr
decode_blob(std::stringstream& in, int& item_length)
{
char *buf = new char[item_length + 1];
@@ -652,6 +665,9 @@
in_length -= item_length;
switch (type) {
+ case ITEM_BOOL:
+ element = decode_bool(in, item_length);
+ break;
case ITEM_BLOB:
element = decode_blob(in, item_length);
break;
@@ -761,8 +777,13 @@
std::stringstream text;
text << str();
- int length = text.str().length();
- ss << encode_length(length, ITEM_UTF8) << text.str();
+ int length = 1;
+ ss << encode_length(length, ITEM_BOOL);
+ if (bool_value()) {
+ ss << 0x01;
+ } else {
+ ss << 0x00;
+ }
return ss.str();
}
More information about the bind10-changes
mailing list