summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/Util.h
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2014-08-22 13:57:27 -0700
committerMark Spruiell <mes@zeroc.com>2014-08-22 13:57:27 -0700
commit72f8cc4a94b6ff77be9c8d08f28ed6b23d59568e (patch)
tree3c3a82331886bb85928b2edff98f36c147ca88f1 /cpp/src/Freeze/Util.h
parentremove convertssl.py from RPMs (diff)
downloadice-72f8cc4a94b6ff77be9c8d08f28ed6b23d59568e.tar.bz2
ice-72f8cc4a94b6ff77be9c8d08f28ed6b23d59568e.tar.xz
ice-72f8cc4a94b6ff77be9c8d08f28ed6b23d59568e.zip
ICE-5225 - Freeze changes
Diffstat (limited to 'cpp/src/Freeze/Util.h')
-rw-r--r--cpp/src/Freeze/Util.h34
1 files changed, 28 insertions, 6 deletions
diff --git a/cpp/src/Freeze/Util.h b/cpp/src/Freeze/Util.h
index c5b243c1715..ef3deed6399 100644
--- a/cpp/src/Freeze/Util.h
+++ b/cpp/src/Freeze/Util.h
@@ -25,7 +25,7 @@
namespace Freeze
{
-inline void
+inline void
initializeInDbt(const std::vector<Ice::Byte>& v, Dbt& dbt)
{
dbt.set_data(const_cast<Ice::Byte*>(&v[0]));
@@ -36,7 +36,18 @@ initializeInDbt(const std::vector<Ice::Byte>& v, Dbt& dbt)
dbt.set_flags(DB_DBT_USERMEM);
}
-inline void
+inline void
+initializeInDbt(IceInternal::BasicStream& s, Dbt& dbt)
+{
+ dbt.set_data(const_cast<Ice::Byte*>(s.b.begin()));
+ dbt.set_size(static_cast<u_int32_t>(s.b.size()));
+ dbt.set_ulen(0);
+ dbt.set_dlen(0);
+ dbt.set_doff(0);
+ dbt.set_flags(DB_DBT_USERMEM);
+}
+
+inline void
initializeOutDbt(std::vector<Ice::Byte>& v, Dbt& dbt)
{
v.resize(v.capacity());
@@ -48,11 +59,22 @@ initializeOutDbt(std::vector<Ice::Byte>& v, Dbt& dbt)
dbt.set_flags(DB_DBT_USERMEM);
}
+inline void
+initializeOutDbt(IceInternal::BasicStream& s, Dbt& dbt)
+{
+ dbt.set_data(const_cast<Ice::Byte*>(s.b.begin()));
+ dbt.set_size(0);
+ dbt.set_ulen(static_cast<u_int32_t>(s.b.size()));
+ dbt.set_dlen(0);
+ dbt.set_doff(0);
+ dbt.set_flags(DB_DBT_USERMEM);
+}
+
//
-// Handles a Berkeley DB DbException by resizing the
+// Handles a Berkeley DB DbException by resizing the
// given key/value/dbt (when the exception's errno is
-// DB_SMALL_BUFFER) or by throwing a
+// DB_SMALL_BUFFER) or by throwing a
// Freeze::DatabaseException
//
@@ -60,11 +82,11 @@ void
handleDbException(const DbException&, const char*, int);
void
-handleDbException(const DbException&, Key&, Dbt&,
+handleDbException(const DbException&, Key&, Dbt&,
const char*, int);
void
-handleDbException(const DbException&, Key&, Dbt&, Value&, Dbt&,
+handleDbException(const DbException&, Key&, Dbt&, Value&, Dbt&,
const char*, int);
}