--- a/src/common/mtag-buffer.cc Thu Apr 24 14:58:17 2008 -0700
+++ b/src/common/mtag-buffer.cc Thu Apr 24 15:44:15 2008 -0700
@@ -36,6 +36,23 @@
WriteU8 ((data >> 48) & 0xff);
WriteU8 ((data >> 54) & 0xff);
}
+void
+MtagBuffer::WriteDouble (double v)
+{
+ uint8_t *buf = (uint8_t *)&v;
+ for (uint32_t i = 0; i < sizeof (double); ++i, ++buf)
+ {
+ WriteU8 (*buf);
+ }
+}
+void
+MtagBuffer::Write (const uint8_t *buffer, uint32_t size)
+{
+ for (uint32_t i = 0; i < size; ++i, ++buffer)
+ {
+ WriteU8 (*buffer);
+ }
+}
uint8_t
MtagBuffer::ReadU8 (void)
{
@@ -100,6 +117,25 @@
return data;
}
+double
+MtagBuffer::ReadDouble (void)
+{
+ double v;
+ uint8_t *buf = (uint8_t *)&v;
+ for (uint32_t i = 0; i < sizeof (double); ++i, ++buf)
+ {
+ *buf = ReadU8 ();
+ }
+ return v;
+}
+void
+MtagBuffer::Read (uint8_t *buffer, uint32_t size)
+{
+ for (uint32_t i = 0; i < size; ++i, ++buffer)
+ {
+ *buffer = ReadU8 ();
+ }
+}
MtagBuffer::MtagBuffer (uint8_t *start, uint8_t *end)
: m_current (start),
m_end (end)
--- a/src/common/mtag-buffer.h Thu Apr 24 14:58:17 2008 -0700
+++ b/src/common/mtag-buffer.h Thu Apr 24 15:44:15 2008 -0700
@@ -15,10 +15,14 @@
void WriteU16 (uint16_t v);
void WriteU32 (uint32_t v);
void WriteU64 (uint64_t v);
+ void WriteDouble (double v);
+ void Write (const uint8_t *buffer, uint32_t size);
uint8_t ReadU8 (void);
uint16_t ReadU16 (void);
uint32_t ReadU32 (void);
uint64_t ReadU64 (void);
+ double ReadDouble (void);
+ void Read (uint8_t *buffer, uint32_t size);
void CopyFrom (MtagBuffer o);
private: