summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/messaging/amqp/PnData.h
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/messaging/amqp/PnData.h')
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/PnData.h29
1 files changed, 15 insertions, 14 deletions
diff --git a/qpid/cpp/src/qpid/messaging/amqp/PnData.h b/qpid/cpp/src/qpid/messaging/amqp/PnData.h
index 6d03235432..b0119f88fd 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/PnData.h
+++ b/qpid/cpp/src/qpid/messaging/amqp/PnData.h
@@ -32,28 +32,29 @@ namespace messaging {
namespace amqp {
/**
- * Helper class to read/write messaging types to/from pn_data_t.
+ * Helper class to put/get messaging types to/from pn_data_t.
*/
class PnData
{
public:
- PnData(pn_data_t* d) : data(d) {}
+ pn_data_t* data;
- void write(const types::Variant& value);
- void write(const types::Variant::Map& map);
- void write(const types::Variant::List& list);
+ PnData(pn_data_t* d) : data(d) {}
- bool read(pn_type_t type, types::Variant& value);
- bool read(types::Variant& value);
- void readList(types::Variant::List& value);
- void readMap(types::Variant::Map& value);
- void readArray(types::Variant::List& value);
+ void put(const types::Variant& value);
+ void put(const types::Variant::Map& map);
+ void put(const types::Variant::List& list);
+ void put(int32_t n) { pn_data_put_int(data, n); }
+ void putSymbol(const std::string& symbol) { pn_data_put_symbol(data, bytes(symbol)); }
- static pn_bytes_t str(const std::string&);
- static std::string str(const pn_bytes_t&);
+ bool get(pn_type_t type, types::Variant& value);
+ bool get(types::Variant& value);
+ void getList(types::Variant::List& value);
+ void getMap(types::Variant::Map& value);
+ void getArray(types::Variant::List& value);
- private:
- pn_data_t* data;
+ static pn_bytes_t bytes(const std::string&);
+ static std::string string(const pn_bytes_t&);
};
}}} // namespace messaging::amqp