diff options
author | Daniel Friesel <derf@finalrewind.org> | 2018-11-19 09:37:32 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2018-11-19 09:37:32 +0100 |
commit | 0a4a3e085f162fb3d34da3522bca7e7eeb8847e9 (patch) | |
tree | ea8af08c32c4041cf6a246d59ff267077a18c6ab | |
parent | 3b660dbb8528542354f6488f6c22519b95a49b91 (diff) |
XDRStream: Support float/double
-rw-r--r-- | include/object/xdrstream.h | 2 | ||||
-rw-r--r-- | src/os/object/xdrstream.cc | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/object/xdrstream.h b/include/object/xdrstream.h index 497e143..55bef5b 100644 --- a/include/object/xdrstream.h +++ b/include/object/xdrstream.h @@ -27,6 +27,8 @@ class XDRStream { XDRStream & operator<<(int32_t number); XDRStream & operator<<(uint64_t number); XDRStream & operator<<(int64_t number); + XDRStream & operator<<(float number); + XDRStream & operator<<(double number); XDRStream & operator<<(char const *text); template<uint32_t TSize> XDRStream & operator<<(char const (&text)[TSize]); XDRStream & operator<<(XDRStream & (*fun) (XDRStream &)); diff --git a/src/os/object/xdrstream.cc b/src/os/object/xdrstream.cc index bc2ad89..888153b 100644 --- a/src/os/object/xdrstream.cc +++ b/src/os/object/xdrstream.cc @@ -68,6 +68,18 @@ XDRStream & XDRStream::operator<<(int64_t number) return *this; } +XDRStream & XDRStream::operator<<(float number) +{ + *this << *(uint32_t*)&number; + return *this; +} + +XDRStream & XDRStream::operator<<(double number) +{ + *this << *(uint64_t*)&number; + return *this; +} + XDRStream & XDRStream::operator<<(char const *data){ if (!is_fixed_length) { *this << next_array_len; |