Repository: qpid-proton
Updated Branches:
  refs/heads/master 8f27d0e73 -> 6ac7bd29e


PROTON-1138: message user_id->user, make internal: comparable, value_base, 
scalar_base, remove scalar_base as_xxx methods


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/6ac7bd29
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/6ac7bd29
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/6ac7bd29

Branch: refs/heads/master
Commit: 6ac7bd29e78611bacb541a8073d48f6708d65ab8
Parents: 8f27d0e
Author: Clifford Jansen <[email protected]>
Authored: Fri May 13 18:40:37 2016 -0700
Committer: Clifford Jansen <[email protected]>
Committed: Fri May 13 18:40:37 2016 -0700

----------------------------------------------------------------------
 .../cpp/include/proton/annotation_key.hpp       |  4 +--
 .../bindings/cpp/include/proton/byte_array.hpp  |  2 +-
 .../bindings/cpp/include/proton/comparable.hpp  |  3 ++-
 .../bindings/cpp/include/proton/decoder.hpp     |  7 +++--
 .../bindings/cpp/include/proton/duration.hpp    |  2 +-
 .../bindings/cpp/include/proton/encoder.hpp     |  9 ++++---
 .../bindings/cpp/include/proton/message.hpp     |  9 ++-----
 .../bindings/cpp/include/proton/message_id.hpp  |  4 +--
 proton-c/bindings/cpp/include/proton/scalar.hpp |  2 +-
 .../bindings/cpp/include/proton/scalar_base.hpp | 10 +++----
 .../bindings/cpp/include/proton/timestamp.hpp   |  2 +-
 proton-c/bindings/cpp/include/proton/value.hpp  | 13 +++++++--
 proton-c/bindings/cpp/src/decoder.cpp           |  4 +--
 proton-c/bindings/cpp/src/encoder.cpp           |  6 ++---
 proton-c/bindings/cpp/src/message.cpp           |  4 +--
 proton-c/bindings/cpp/src/message_test.cpp      |  6 ++---
 proton-c/bindings/cpp/src/scalar_base.cpp       | 11 ++------
 proton-c/bindings/cpp/src/scalar_test.cpp       | 28 ++++++++++----------
 proton-c/bindings/cpp/src/value.cpp             | 10 +++++--
 19 files changed, 71 insertions(+), 65 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/annotation_key.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/annotation_key.hpp 
b/proton-c/bindings/cpp/include/proton/annotation_key.hpp
index acea44e..042e95d 100644
--- a/proton-c/bindings/cpp/include/proton/annotation_key.hpp
+++ b/proton-c/bindings/cpp/include/proton/annotation_key.hpp
@@ -28,9 +28,9 @@ namespace proton {
 /// A key for use with AMQP annotation maps.
 ///
 /// An annotation_key can contain either a uint64_t or a proton::symbol.
-class annotation_key : public scalar_base {
+class annotation_key : public internal::scalar_base {
   public:
-    using scalar_base::type;
+    using internal::scalar_base::type;
 
     /// An empty annotation key has a uint64_t == 0 value.
     annotation_key() { put_(uint64_t(0)); }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/byte_array.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/byte_array.hpp 
b/proton-c/bindings/cpp/include/proton/byte_array.hpp
index 9ba6abf..e5c5dbf 100644
--- a/proton-c/bindings/cpp/include/proton/byte_array.hpp
+++ b/proton-c/bindings/cpp/include/proton/byte_array.hpp
@@ -33,7 +33,7 @@ PN_CPP_EXTERN void print_hex(std::ostream& o, const uint8_t* 
p, size_t n);
 
 /// Used to represent fixed-sized data types that don't have a natural C++ 
representation
 /// as an array of bytes.
-template <size_t N> class byte_array : private comparable<byte_array<N> > {
+template <size_t N> class byte_array : private 
internal::comparable<byte_array<N> > {
   public:
     ///@name Sequence container typedefs
     ///@{

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/comparable.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/comparable.hpp 
b/proton-c/bindings/cpp/include/proton/comparable.hpp
index cca0e62..72bcbb4 100644
--- a/proton-c/bindings/cpp/include/proton/comparable.hpp
+++ b/proton-c/bindings/cpp/include/proton/comparable.hpp
@@ -21,6 +21,7 @@
  */
 
 namespace proton {
+namespace internal {
 
 ///@cond INTERNAL
 
@@ -35,6 +36,6 @@ template <class T> class comparable {
 
 ///@endcond
 
-}
+}}
 
 #endif // COMPARABLE_HPP

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/decoder.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/decoder.hpp 
b/proton-c/bindings/cpp/include/proton/decoder.hpp
index e6fc78b..32d3adb 100644
--- a/proton-c/bindings/cpp/include/proton/decoder.hpp
+++ b/proton-c/bindings/cpp/include/proton/decoder.hpp
@@ -32,7 +32,10 @@ class annotation_key;
 class message_id;
 class scalar;
 class value;
+
+namespace internal {
 class value_base;
+}
 
 /// @ingroup codec
 namespace codec {
@@ -50,7 +53,7 @@ class decoder : public data {
     explicit decoder(const data& d, bool exact=false) : data(d), exact_(exact) 
{}
 
     /// Attach decoder to a proton::value. The decoder is rewound to the start 
of the data.
-    PN_CPP_EXTERN explicit decoder(const value_base&, bool exact=false);
+    PN_CPP_EXTERN explicit decoder(const internal::value_base&, bool 
exact=false);
 
     /// Decode AMQP data from a buffer and add it to the end of the decoders 
stream. */
     PN_CPP_EXTERN void decode(const char* buffer, size_t size);
@@ -91,7 +94,7 @@ class decoder : public data {
     PN_CPP_EXTERN decoder& operator>>(message_id&);
     PN_CPP_EXTERN decoder& operator>>(annotation_key&);
     PN_CPP_EXTERN decoder& operator>>(scalar&);
-    PN_CPP_EXTERN decoder& operator>>(value_base&);
+    PN_CPP_EXTERN decoder& operator>>(internal::value_base&);
     PN_CPP_EXTERN decoder& operator>>(null&);
     ///@}
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/duration.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/duration.hpp 
b/proton-c/bindings/cpp/include/proton/duration.hpp
index c5f75d7..1b413a3 100644
--- a/proton-c/bindings/cpp/include/proton/duration.hpp
+++ b/proton-c/bindings/cpp/include/proton/duration.hpp
@@ -31,7 +31,7 @@
 namespace proton {
 
 /// A span of time in milliseconds.
-class duration : private comparable<duration> {
+class duration : private internal::comparable<duration> {
   public:
     typedef int64_t numeric_type; ///< Numeric type used to store milliseconds
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/encoder.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/encoder.hpp 
b/proton-c/bindings/cpp/include/proton/encoder.hpp
index b9d4461..fd15128 100644
--- a/proton-c/bindings/cpp/include/proton/encoder.hpp
+++ b/proton-c/bindings/cpp/include/proton/encoder.hpp
@@ -26,8 +26,11 @@
 
 namespace proton {
 
+namespace internal{
 class scalar_base;
 class value_base;
+}
+
 
 /// @ingroup codec
 namespace codec {
@@ -42,7 +45,7 @@ class encoder : public data {
     explicit encoder(const data& d) : data(d) {}
 
     /// Encoder into v. Clears any current value in v.
-    PN_CPP_EXTERN explicit encoder(value_base& v);
+    PN_CPP_EXTERN explicit encoder(internal::value_base& v);
 
     /**
      * Encode the current values into buffer and update size to reflect the
@@ -86,13 +89,13 @@ class encoder : public data {
     PN_CPP_EXTERN encoder& operator<<(const std::string&);
     PN_CPP_EXTERN encoder& operator<<(const symbol&);
     PN_CPP_EXTERN encoder& operator<<(const binary&);
-    PN_CPP_EXTERN encoder& operator<<(const scalar_base&);
+    PN_CPP_EXTERN encoder& operator<<(const internal::scalar_base&);
     PN_CPP_EXTERN encoder& operator<<(const null&);
     ///@}
 
     /// Insert a proton::value.
     /// @internal NOTE insert value_base, not value to avoid recursive 
implicit conversions.
-    PN_CPP_EXTERN encoder& operator<<(const value_base&);
+    PN_CPP_EXTERN encoder& operator<<(const internal::value_base&);
 
     /// Start a complex type
     PN_CPP_EXTERN encoder& operator<<(const start&);

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/message.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/message.hpp 
b/proton-c/bindings/cpp/include/proton/message.hpp
index c24b4e7..2dbb4ec 100644
--- a/proton-c/bindings/cpp/include/proton/message.hpp
+++ b/proton-c/bindings/cpp/include/proton/message.hpp
@@ -83,13 +83,8 @@ class message {
     PN_CPP_EXTERN void id(const message_id& id);
     PN_CPP_EXTERN message_id id() const;
 
-    /// @cond INTERNAL
-    /// XXX consider just user, in order to be consistent with similar
-    /// fields elsewhere in the API
-    /// XXX ask gordon about use case - decision sort of: "user" instead of 
"user_id"
-    PN_CPP_EXTERN void user_id(const std::string &user);
-    PN_CPP_EXTERN std::string user_id() const;
-    /// @endcond
+    PN_CPP_EXTERN void user(const std::string &user);
+    PN_CPP_EXTERN std::string user() const;
 
     /// Encode entire message into a byte vector, growing it if
     /// necessary.

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/message_id.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/message_id.hpp 
b/proton-c/bindings/cpp/include/proton/message_id.hpp
index 2860a2a..abf4fe2 100644
--- a/proton-c/bindings/cpp/include/proton/message_id.hpp
+++ b/proton-c/bindings/cpp/include/proton/message_id.hpp
@@ -37,7 +37,7 @@ namespace proton {
 ///  - proton::uuid
 ///  - proton::binary
 ///
-class message_id : public scalar_base {
+class message_id : public internal::scalar_base {
   public:
     /// An empty message_id has a uint64_t == 0 value.
     message_id() { put_(uint64_t(0)); }
@@ -57,7 +57,7 @@ class message_id : public scalar_base {
     /// @}
 
   private:
-    message_id(const pn_atom_t& a): scalar_base(a) {}
+    message_id(const pn_atom_t& a): internal::scalar_base(a) {}
 
     ///@cond INTERNAL
   friend class message;

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/scalar.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/scalar.hpp 
b/proton-c/bindings/cpp/include/proton/scalar.hpp
index af16a89..a08aa48 100644
--- a/proton-c/bindings/cpp/include/proton/scalar.hpp
+++ b/proton-c/bindings/cpp/include/proton/scalar.hpp
@@ -31,7 +31,7 @@ class encoder;
 
 /// A holder for an instance of any scalar AMQP type, see \ref types.
 ///
-class scalar : public scalar_base {
+class scalar : public internal::scalar_base {
   public:
     /// Create an empty scalar.
     PN_CPP_EXTERN scalar() {}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/scalar_base.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/scalar_base.hpp 
b/proton-c/bindings/cpp/include/proton/scalar_base.hpp
index 43003c8..eea3fb2 100644
--- a/proton-c/bindings/cpp/include/proton/scalar_base.hpp
+++ b/proton-c/bindings/cpp/include/proton/scalar_base.hpp
@@ -36,12 +36,14 @@
 #include <string>
 
 namespace proton {
+class message;
 
 namespace codec {
 class decoder;
 class encoder;
 }
 
+namespace internal {
 
 /// Base class for scalar types.
 class scalar_base : private comparable<scalar_base> {
@@ -51,10 +53,6 @@ class scalar_base : private comparable<scalar_base> {
 
     /// @cond INTERNAL
     /// deprecated
-    PN_CPP_EXTERN int64_t as_int() const;
-    PN_CPP_EXTERN uint64_t as_uint() const;
-    PN_CPP_EXTERN double as_double() const;
-    PN_CPP_EXTERN std::string as_string() const;
     template <class T> void get(T& x) const { get_(x); }
     template <class T> T get() const { T x; get_(x); return x; }
     /// @endcond
@@ -125,13 +123,11 @@ class scalar_base : private comparable<scalar_base> {
     pn_atom_t atom_;
     binary bytes_;              // Hold binary data.
 
-  friend class message;
+  friend class proton::message;
   friend class codec::encoder;
   friend class codec::decoder;
 };
 
-namespace internal {
-
 template<class T> T get(const scalar_base& s) { T x; s.get(x); return x; }
 
 template <class R, class F> R visit(const scalar_base& s, F f) {

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/timestamp.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/timestamp.hpp 
b/proton-c/bindings/cpp/include/proton/timestamp.hpp
index af08e40..7736e00 100644
--- a/proton-c/bindings/cpp/include/proton/timestamp.hpp
+++ b/proton-c/bindings/cpp/include/proton/timestamp.hpp
@@ -23,7 +23,7 @@
 
 namespace proton {
 /// 64 bit timestamp in milliseconds since the epoch 00:00:00 (UTC), 1 January 
1970.
-class timestamp : private comparable<timestamp> {
+class timestamp : private internal::comparable<timestamp> {
   public:
     typedef int64_t numeric_type; ///< Numeric type holding milliseconds value
     PN_CPP_EXTERN static timestamp now(); ///< Current wall-clock time

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/include/proton/value.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/value.hpp 
b/proton-c/bindings/cpp/include/proton/value.hpp
index 8957fdc..7b347f7 100644
--- a/proton-c/bindings/cpp/include/proton/value.hpp
+++ b/proton-c/bindings/cpp/include/proton/value.hpp
@@ -28,6 +28,12 @@
 #include <iosfwd>
 
 namespace proton {
+class message;
+
+namespace internal {
+
+class value_base;
+PN_CPP_EXTERN std::ostream& operator<<(std::ostream& o, const value_base& x);
 
 ///@internal - separate value data from implicit conversion constructors to 
avoid recursions.
 class value_base {
@@ -43,14 +49,17 @@ class value_base {
     codec::data& data() const;
     mutable class codec::data data_;
 
-  friend class message;
+  friend class proton::message;
   friend class codec::encoder;
   friend class codec::decoder;
   friend PN_CPP_EXTERN std::ostream& operator<<(std::ostream&, const 
value_base&);
 };
 
+}
+
+
 /// A holder for any AMQP value, simple or complex, see @ref types.
-class value : public value_base, private comparable<value> {
+class value : public internal::value_base, private internal::comparable<value> 
{
   private:
     // Enabler for encodable types excluding proton::value.
     template<class T, class U=void> struct assignable :

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/src/decoder.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/decoder.cpp 
b/proton-c/bindings/cpp/src/decoder.cpp
index ba94c00..7bfbeb3 100644
--- a/proton-c/bindings/cpp/src/decoder.cpp
+++ b/proton-c/bindings/cpp/src/decoder.cpp
@@ -43,7 +43,7 @@ namespace codec {
  * to be returned by the decoder.
  */
 
-decoder::decoder(const value_base& v, bool exact) : data(v.data()), 
exact_(exact) { rewind(); }
+decoder::decoder(const internal::value_base& v, bool exact) : data(v.data()), 
exact_(exact) { rewind(); }
 
 namespace {
 template <class T> T check(T result) {
@@ -138,7 +138,7 @@ decoder& decoder::operator>>(null&) {
     return *this;
 }
 
-decoder& decoder::operator>>(value_base& x) {
+decoder& decoder::operator>>(internal::value_base& x) {
     if (*this == x.data_)
         throw conversion_error("extract into self");
     data d = x.data();

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/src/encoder.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/encoder.cpp 
b/proton-c/bindings/cpp/src/encoder.cpp
index a228960..4067cf8 100644
--- a/proton-c/bindings/cpp/src/encoder.cpp
+++ b/proton-c/bindings/cpp/src/encoder.cpp
@@ -45,7 +45,7 @@ void encoder::check(long result) {
 }
 
 
-encoder::encoder(value_base& v) : data(v.data()) {
+encoder::encoder(internal::value_base& v) : data(v.data()) {
     clear();
 }
 
@@ -142,9 +142,9 @@ encoder& encoder::operator<<(const symbol& x) { return 
insert(x, pn_data_put_amq
 encoder& encoder::operator<<(const binary& x) { return insert(x, 
pn_data_put_amqp_binary); }
 encoder& encoder::operator<<(const null&) { pn_data_put_null(pn_object()); 
return *this; }
 
-encoder& encoder::operator<<(const scalar_base& x) { return insert(x.atom_, 
pn_data_put_atom); }
+encoder& encoder::operator<<(const internal::scalar_base& x) { return 
insert(x.atom_, pn_data_put_atom); }
 
-encoder& encoder::operator<<(const value_base& x) {
+encoder& encoder::operator<<(const internal::value_base& x) {
     if (*this == x.data_)
         throw conversion_error("cannot insert into self");
     if (x.empty()) {

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/src/message.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/message.cpp 
b/proton-c/bindings/cpp/src/message.cpp
index 291b106..a3842d9 100644
--- a/proton-c/bindings/cpp/src/message.cpp
+++ b/proton-c/bindings/cpp/src/message.cpp
@@ -97,11 +97,11 @@ message_id message::id() const {
     return pn_message_get_id(pn_msg());
 }
 
-void message::user_id(const std::string &id) {
+void message::user(const std::string &id) {
     check(pn_message_set_user_id(pn_msg(), pn_bytes(id)));
 }
 
-std::string message::user_id() const {
+std::string message::user() const {
     return str(pn_message_get_user_id(pn_msg()));
 }
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/src/message_test.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/message_test.cpp 
b/proton-c/bindings/cpp/src/message_test.cpp
index d5ba474..2379af7 100644
--- a/proton-c/bindings/cpp/src/message_test.cpp
+++ b/proton-c/bindings/cpp/src/message_test.cpp
@@ -45,7 +45,7 @@ void test_message_properties() {
     ASSERT_EQUAL("hello", s);
 
     CHECK_MESSAGE_ID(id);
-    CHECK_STR(user_id);
+    CHECK_STR(user);
     CHECK_STR(to);
     CHECK_STR(subject);
     CHECK_STR(reply_to);
@@ -62,7 +62,7 @@ void test_message_properties() {
     message m2(m);
     ASSERT_EQUAL("hello", get<std::string>(m2.body()));
     ASSERT_EQUAL(message_id("id"), m2.id());
-    ASSERT_EQUAL("user_id", m2.user_id());
+    ASSERT_EQUAL("user", m2.user());
     ASSERT_EQUAL("to", m2.to());
     ASSERT_EQUAL("subject", m2.subject());
     ASSERT_EQUAL("reply_to", m2.reply_to());
@@ -77,7 +77,7 @@ void test_message_properties() {
     m2 = m;
     ASSERT_EQUAL("hello", get<std::string>(m2.body()));
     ASSERT_EQUAL(message_id("id"), m2.id());
-    ASSERT_EQUAL("user_id", m2.user_id());
+    ASSERT_EQUAL("user", m2.user());
     ASSERT_EQUAL("to", m2.to());
     ASSERT_EQUAL("subject", m2.subject());
     ASSERT_EQUAL("reply_to", m2.reply_to());

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/src/scalar_base.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/scalar_base.cpp 
b/proton-c/bindings/cpp/src/scalar_base.cpp
index 180c40c..c7f97e8 100644
--- a/proton-c/bindings/cpp/src/scalar_base.cpp
+++ b/proton-c/bindings/cpp/src/scalar_base.cpp
@@ -31,6 +31,7 @@
 #include <ostream>
 
 namespace proton {
+namespace internal {
 
 scalar_base::scalar_base() { atom_.type = PN_NULL; }
 scalar_base::scalar_base(const pn_atom_t& a) { set(a); }
@@ -108,14 +109,6 @@ void scalar_base::get_(symbol& x) const { ok(PN_SYMBOL); x 
= symbol(bytes_.begin
 void scalar_base::get_(binary& x) const { ok(PN_BINARY); x = bytes_; }
 void scalar_base::get_(null&) const { ok(PN_NULL); }
 
-int64_t scalar_base::as_int() const { return internal::coerce<int64_t>(*this); 
}
-
-uint64_t scalar_base::as_uint() const { return 
internal::coerce<uint64_t>(*this); }
-
-double scalar_base::as_double() const { return 
internal::coerce<double>(*this); }
-
-std::string scalar_base::as_string() const { return 
internal::coerce<std::string>(*this); }
-
 namespace {
 
 struct equal_op {
@@ -155,4 +148,4 @@ std::ostream& operator<<(std::ostream& o, const 
scalar_base& s) {
     return internal::visit<std::ostream&>(s, ostream_op(o));
 }
 
-} // namespace proton
+}} // namespaces

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/src/scalar_test.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/scalar_test.cpp 
b/proton-c/bindings/cpp/src/scalar_test.cpp
index 4183af3..f306ba8 100644
--- a/proton-c/bindings/cpp/src/scalar_test.cpp
+++ b/proton-c/bindings/cpp/src/scalar_test.cpp
@@ -72,23 +72,23 @@ void coerce_test() {
 
     a = binary("foo");
     ASSERT_MISMATCH(a.get<int16_t>(), SHORT, BINARY);
-    ASSERT_MISMATCH(a.as_int(), LONG, BINARY);
-    ASSERT_MISMATCH(a.as_double(), DOUBLE, BINARY);
+    ASSERT_MISMATCH(coerce<int64_t>(a), LONG, BINARY);
+    ASSERT_MISMATCH(coerce<double>(a), DOUBLE, BINARY);
     ASSERT_MISMATCH(a.get<std::string>(), STRING, BINARY); // No strict 
conversion
-    ASSERT_EQUAL(a.as_string(), std::string("foo")); // OK string-like 
conversion
+    ASSERT_EQUAL(coerce<std::string>(a), std::string("foo")); // OK 
string-like conversion
 
     a = int16_t(42);
     ASSERT_MISMATCH(a.get<std::string>(), STRING, SHORT);
     ASSERT_MISMATCH(a.get<timestamp>(), TIMESTAMP, SHORT);
-    ASSERT_MISMATCH(a.as_string(), STRING, SHORT);
-    ASSERT_EQUAL(a.as_int(), 42);
-    ASSERT_EQUAL(a.as_uint(), 42u);
-    ASSERT_EQUAL(a.as_double(), 42);
+    ASSERT_MISMATCH(coerce<std::string>(a), STRING, SHORT);
+    ASSERT_EQUAL(coerce<int64_t>(a), 42);
+    ASSERT_EQUAL(coerce<uint64_t>(a), 42u);
+    ASSERT_EQUAL(coerce<double>(a), 42);
 
     a = int16_t(-42);
-    ASSERT_EQUAL(a.as_int(), -42);
-    ASSERT_EQUAL(a.as_uint(), uint64_t(-42));
-    ASSERT_EQUAL(a.as_double(), -42);
+    ASSERT_EQUAL(coerce<int64_t>(a), -42);
+    ASSERT_EQUAL(coerce<uint64_t>(a), uint64_t(-42));
+    ASSERT_EQUAL(coerce<double>(a), -42);
 }
 
 void encode_decode_test() {
@@ -102,20 +102,20 @@ void encode_decode_test() {
 }
 
 void message_id_test() {
-    ASSERT_EQUAL(23, message_id(23).as_int());
+    ASSERT_EQUAL(23, coerce<int64_t>(message_id(23)));
     ASSERT_EQUAL(23u, message_id(23).get<uint64_t>());
     ASSERT(message_id("foo") != message_id(binary("foo")));
     ASSERT_EQUAL(scalar("foo"), message_id("foo"));
-    ASSERT_EQUAL("foo", message_id("foo").as_string());
+    ASSERT_EQUAL("foo", coerce<std::string>(message_id("foo")));
     ASSERT(message_id("a") < message_id("z"));
     uuid r = uuid::random();
     ASSERT_EQUAL(r, message_id(r).get<uuid>());
 }
 
 void annotation_key_test() {
-    ASSERT_EQUAL(23, annotation_key(23).as_int());
+    ASSERT_EQUAL(23, coerce<int64_t>(annotation_key(23)));
     ASSERT_EQUAL(23u, annotation_key(23).get<uint64_t>());
-    ASSERT_EQUAL("foo", annotation_key("foo").as_string());
+    ASSERT_EQUAL("foo", coerce<std::string>(annotation_key("foo")));
     ASSERT_EQUAL(scalar(symbol("foo")), annotation_key("foo"));
 }
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6ac7bd29/proton-c/bindings/cpp/src/value.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/value.cpp 
b/proton-c/bindings/cpp/src/value.cpp
index 7019dfd..ca229b9 100644
--- a/proton-c/bindings/cpp/src/value.cpp
+++ b/proton-c/bindings/cpp/src/value.cpp
@@ -52,6 +52,8 @@ void swap(value& x, value& y) { std::swap(x.data_, y.data_); }
 
 void value::clear() { if (!!data_) data_.clear(); }
 
+namespace internal {
+
 type_id value_base::type() const {
     return (!data_ || data_.empty()) ? NULL_TYPE : 
codec::decoder(*this).next_type();
 }
@@ -65,6 +67,8 @@ codec::data& value_base::data() const {
     return data_;
 }
 
+}
+
 namespace {
 
 // Compare nodes, return -1 if a<b, 0 if a==b, +1 if a>b
@@ -167,10 +171,11 @@ bool operator<(const value& x, const value& y) {
     return compare(x, y) < 0;
 }
 
-std::ostream& operator<<(std::ostream& o, const value_base& x) {
+namespace internal {
+std::ostream& operator<<(std::ostream& o, const internal::value_base& x) {
     if (x.empty())
         return o << "<null>";
-    decoder d(x);
+    proton::decoder d(x);
     // Print std::string and proton::foo types using their own operator << 
consistent with C++.
     switch (d.next_type()) {
       case STRING: return o << get<std::string>(d);
@@ -185,5 +190,6 @@ std::ostream& operator<<(std::ostream& o, const value_base& 
x) {
         return o << d;
     }
 }
+}
 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to