From d5e9ff6bf4d40ebe069bb25256bb2a1e3200c92c Mon Sep 17 00:00:00 2001 From: Vitaly Mayatskikh Date: Sat, 6 Mar 2010 01:10:51 +0100 Subject: [PATCH] New class: Buffer --- src/IMPLEMENTED | 2 +- src/Makefile.am | 3 +- src/buffer.cpp | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/buffer.h | 56 +++++++++++++++ 4 files changed, 275 insertions(+), 2 deletions(-) create mode 100644 src/buffer.cpp create mode 100644 src/buffer.h diff --git a/src/IMPLEMENTED b/src/IMPLEMENTED index 9f501db..6aa5028 100644 --- a/src/IMPLEMENTED +++ b/src/IMPLEMENTED @@ -53,7 +53,7 @@ amqp_types_full.h amqp_types.h Array.h - Buffer.h ++ Buffer.h ClientInvoker.h ClusterConfigChangeBody.h ClusterConnectionAbortBody.h diff --git a/src/Makefile.am b/src/Makefile.am index a3e0cb8..0b89d0c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -7,4 +7,5 @@ libqpidctrampoline_la_SOURCES = \ sequence_set.cpp \ session.cpp \ session_id.cpp \ - xa_result.cpp + xa_result.cpp \ + buffer.cpp diff --git a/src/buffer.cpp b/src/buffer.cpp new file mode 100644 index 0000000..1ed6206 --- /dev/null +++ b/src/buffer.cpp @@ -0,0 +1,216 @@ +#include "defines.h" +#include "buffer.h" +#include + +void* qpidc_buffer_new(char* data, uint32_t size) +{ + return new qpid::framing::Buffer(data, size); +} + +void qpidc_buffer_delete(void* buffer) +{ + delete BUFFER(buffer); +} + +void qpidc_buffer_record(void* buffer) +{ + BUFFER(buffer)->record(); +} + +void qpidc_buffer_restore(void* buffer, int re_record) +{ + BUFFER(buffer)->restore(re_record); +} + +void qpidc_buffer_reset(void* buffer) +{ + BUFFER(buffer)->reset(); +} + +uint32_t qpidc_buffer_available(void* buffer) +{ + return BUFFER(buffer)->available(); +} + +uint32_t qpidc_buffer_get_size(void* buffer) +{ + return BUFFER(buffer)->getSize(); +} + +uint32_t qpidc_buffer_get_position(void* buffer) +{ + return BUFFER(buffer)->getPosition(); +} + +char* qpidc_buffer_get_pointer(void* buffer) +{ + return BUFFER(buffer)->getPointer(); +} + +void qpidc_buffer_put_octet(void* buffer, uint8_t i) +{ + BUFFER(buffer)->putOctet(i); +} + +void qpidc_buffer_put_short(void* buffer, uint16_t i) +{ + BUFFER(buffer)->putShort(i); +} + +void qpidc_buffer_put_long(void* buffer, uint32_t i) +{ + BUFFER(buffer)->putLong(i); +} + +void qpidc_buffer_put_long_long(void* buffer, uint64_t i) +{ + BUFFER(buffer)->putLongLong(i); +} + +void qpidc_buffer_put_int8(void* buffer, int8_t i) +{ + BUFFER(buffer)->putInt8(i); +} + +void qpidc_buffer_put_int16(void* buffer, int16_t i) +{ + BUFFER(buffer)->putInt16(i); +} + +void qpidc_buffer_put_int32(void* buffer, int32_t i) +{ + BUFFER(buffer)->putInt32(i); +} + +void qpidc_buffer_put_int64(void* buffer, int64_t i) +{ + BUFFER(buffer)->putInt64(i); +} + +void qpidc_buffer_put_float(void* buffer, float i) +{ + BUFFER(buffer)->putFloat(i); +} + +void qpidc_buffer_put_double(void* buffer, double i) +{ + BUFFER(buffer)->putDouble(i); +} + +void qpidc_buffer_put_bin_128(void* buffer, uint8_t* b) +{ + BUFFER(buffer)->putBin128(b); +} + +uint8_t qpidc_buffer_get_octet(void* buffer) +{ + return BUFFER(buffer)->getOctet(); +} + +uint16_t qpidc_buffer_get_short(void* buffer) +{ + return BUFFER(buffer)->getShort(); +} + +uint32_t qpidc_buffer_get_long(void* buffer) +{ + return BUFFER(buffer)->getLong(); +} + +uint64_t qpidc_buffer_get_long_long(void* buffer) +{ + return BUFFER(buffer)->getLongLong(); +} + +int8_t qpidc_buffer_get_int8(void* buffer) +{ + return BUFFER(buffer)->getInt8(); +} + +int16_t qpidc_buffer_get_int16(void* buffer) +{ + return BUFFER(buffer)->getInt16(); +} + +int32_t qpidc_buffer_get_int32(void* buffer) +{ + return BUFFER(buffer)->getInt32(); +} + +int64_t qpidc_buffer_get_int64(void* buffer) +{ + return BUFFER(buffer)->getInt64(); +} + +float qpidc_buffer_get_float(void* buffer) +{ + return BUFFER(buffer)->getFloat(); +} + +double qpidc_buffer_get_double(void* buffer) +{ + return BUFFER(buffer)->getDouble(); +} + +void qpidc_buffer_put_short_string(void* buffer, char* s) +{ + BUFFER(buffer)->putShortString(ensure_string(s)); +} + +void qpidc_buffer_put_medium_string(void* buffer, char* s) +{ + BUFFER(buffer)->putMediumString(ensure_string(s)); +} + +void qpidc_buffer_put_long_string(void* buffer, char* s) +{ + BUFFER(buffer)->putLongString(ensure_string(s)); +} + +char* qpidc_buffer_get_short_string(void* buffer) +{ + std::string s; + BUFFER(buffer)->getShortString(s); + return strdup(s.c_str()); +} + +char* qpidc_buffer_get_medium_string(void* buffer) +{ + std::string s; + BUFFER(buffer)->getMediumString(s); + return strdup(s.c_str()); +} + +char* qpidc_buffer_get_long_string(void* buffer) +{ + std::string s; + BUFFER(buffer)->getLongString(s); + return strdup(s.c_str()); +} + +void qpidc_buffer_get_bin_128(void* buffer, uint8_t* b) +{ + BUFFER(buffer)->getBin128(b); +} + +void qpidc_buffer_put_raw_data(void* buffer, uint8_t* data, size_t size) +{ + BUFFER(buffer)->putRawData(data, size); +} + +void qpidc_buffer_get_raw_data(void* buffer, uint8_t* data, size_t size) +{ + BUFFER(buffer)->getRawData(data, size); +} + +void qpidc_buffer_dump(void* buffer) +{ + BUFFER(buffer)->dump(std::cout); +} + +void qpidc_buffer_print(void* buffer) +{ + std::cout << *BUFFER(buffer); +} + +// diff --git a/src/buffer.h b/src/buffer.h new file mode 100644 index 0000000..fcc4440 --- /dev/null +++ b/src/buffer.h @@ -0,0 +1,56 @@ +#ifndef BUFFER_H +#define BUFFER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +void* qpidc_buffer_new(char* data, uint32_t size); +void qpidc_buffer_delete(void* buffer); +void qpidc_buffer_record(void* buffer); +void qpidc_buffer_restore(void* buffer, int re_record); +void qpidc_buffer_reset(void* buffer); +uint32_t qpidc_buffer_available(void* buffer); +uint32_t qpidc_buffer_get_size(void* buffer); +uint32_t qpidc_buffer_get_position(void* buffer); +char* qpidc_buffer_get_pointer(void* buffer); +void qpidc_buffer_put_octet(void* buffer, uint8_t i); +void qpidc_buffer_put_short(void* buffer, uint16_t i); +void qpidc_buffer_put_long(void* buffer, uint32_t i); +void qpidc_buffer_put_long_long(void* buffer, uint64_t i); +void qpidc_buffer_put_int8(void* buffer, int8_t i); +void qpidc_buffer_put_int16(void* buffer, int16_t i); +void qpidc_buffer_put_int32(void* buffer, int32_t i); +void qpidc_buffer_put_int64(void* buffer, int64_t i); +void qpidc_buffer_put_float(void* buffer, float i); +void qpidc_buffer_put_double(void* buffer, double i); +void qpidc_buffer_put_bin_128(void* buffer, uint8_t* b); +uint8_t qpidc_buffer_get_octet(void* buffer); +uint16_t qpidc_buffer_get_short(void* buffer); +uint32_t qpidc_buffer_get_long(void* buffer); +uint64_t qpidc_buffer_get_long_long(void* buffer); +int8_t qpidc_buffer_get_int8(void* buffer); +int16_t qpidc_buffer_get_int16(void* buffer); +int32_t qpidc_buffer_get_int32(void* buffer); +int64_t qpidc_buffer_get_int64(void* buffer); +float qpidc_buffer_get_float(void* buffer); +double qpidc_buffer_get_double(void* buffer); +void qpidc_buffer_put_short_string(void* buffer, char* s); +void qpidc_buffer_put_medium_string(void* buffer, char* s); +void qpidc_buffer_put_long_string(void* buffer, char* s); +char* qpidc_buffer_get_short_string(void* buffer); +char* qpidc_buffer_get_medium_string(void* buffer); +char* qpidc_buffer_get_long_string(void* buffer); +void qpidc_buffer_get_bin_128(void* buffer, uint8_t* b); +void qpidc_buffer_put_raw_data(void* buffer, uint8_t* data, size_t size); +void qpidc_buffer_get_raw_data(void* buffer, uint8_t* data, size_t size); +void qpidc_buffer_dump(void* buffer); +void qpidc_buffer_print(void* buffer); + +#ifdef __cplusplus +} +#endif + +#endif /* BUFFER_H */ -- 2.11.4.GIT