diff --git a/include/object/stdbuf.h b/include/object/stdbuf.h index db3062111faa2449c5b315c24d3d6cae7a416b58..271c3ea4ab4e03a804ed385e2616321fb02233a7 100644 --- a/include/object/stdbuf.h +++ b/include/object/stdbuf.h @@ -8,12 +8,17 @@ class BufferOutput : public T { private: BufferOutput(const BufferOutput ©); char *buffer; + uint16_t length; public: - BufferOutput(char *target) { buffer = target; } + BufferOutput(char *target) : buffer(target), length(0) {} virtual void put(char c) { *buffer = c; buffer++; + length++; + } + inline uint16_t size() { + return length; } }; diff --git a/include/object/xdrstream.h b/include/object/xdrstream.h index 55bef5bf9d29006da6660f45cc9644d29e3c5194..e8d4ddc884a272d8d8f27b23123909dc37199432 100644 --- a/include/object/xdrstream.h +++ b/include/object/xdrstream.h @@ -6,7 +6,7 @@ class XDRStream { private: XDRStream(const XDRStream& copy); - uint32_t next_array_len; + uint16_t next_array_len; bool is_fixed_length; public: