From b10ee3923bd871e247505f7b221f4a4802c7da4a Mon Sep 17 00:00:00 2001 From: kearwood Date: Fri, 4 Jan 2013 20:31:39 +0000 Subject: [PATCH] Implemented KRDataBlock::getString() --HG-- extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%40207 --- KREngine/KREngine/Classes/KRDataBlock.cpp | 9 +++++++++ KREngine/KREngine/Classes/KRDataBlock.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/KREngine/KREngine/Classes/KRDataBlock.cpp b/KREngine/KREngine/Classes/KRDataBlock.cpp index bd14023..a61bd9b 100644 --- a/KREngine/KREngine/Classes/KRDataBlock.cpp +++ b/KREngine/KREngine/Classes/KRDataBlock.cpp @@ -199,3 +199,12 @@ bool KRDataBlock::save(const std::string& path) { return true; } } + +// Get contents as a string +std::string KRDataBlock::getString() +{ + KRDataBlock b; + b.append(*this); + b.append((void *)"\0", 1); // Ensure data is null terminated, to read as a string safely + return std::string((char *)b.getStart()); +} diff --git a/KREngine/KREngine/Classes/KRDataBlock.h b/KREngine/KREngine/Classes/KRDataBlock.h index edf0503..6b1a4c8 100644 --- a/KREngine/KREngine/Classes/KRDataBlock.h +++ b/KREngine/KREngine/Classes/KRDataBlock.h @@ -69,6 +69,9 @@ public: // Return the size of the data block. Use append() or expand() to make the data block larger size_t getSize() const; + + // Get the contents as a string + std::string getString(); private: void *m_data; size_t m_data_size;