From fd34ebda2f2d2858b5f0fe96feae53ae6a2c268f Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 30 Nov 2018 09:26:05 +0100 Subject: XDR: Add float and double support --- include/object/xdrinput.h | 2 ++ src/os/object/xdrinput.cc | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/object/xdrinput.h b/include/object/xdrinput.h index f869a13..7b8ac40 100644 --- a/include/object/xdrinput.h +++ b/include/object/xdrinput.h @@ -15,6 +15,8 @@ class XDRInput { int32_t get_int32(); uint64_t get_uint64(); int64_t get_int64(); + float get_float(); + double get_double(); uint32_t get_opaque_length(); char* get_opaque(uint32_t length); }; diff --git a/src/os/object/xdrinput.cc b/src/os/object/xdrinput.cc index 561c779..077f695 100644 --- a/src/os/object/xdrinput.cc +++ b/src/os/object/xdrinput.cc @@ -35,6 +35,18 @@ int64_t XDRInput::get_int64() return (ret0 << 32) | ret1; } +float XDRInput::get_float() +{ + uint32_t val = get_uint32(); + return *(float*)&val; +} + +double XDRInput::get_double() +{ + uint64_t val = get_uint64(); + return *(double*)&val; +} + uint32_t XDRInput::get_opaque_length() { return get_uint32(); -- cgit v1.2.3