summaryrefslogtreecommitdiff
path: root/i/simulotron/src/gs/gs_message.cc
diff options
context:
space:
mode:
Diffstat (limited to 'i/simulotron/src/gs/gs_message.cc')
-rw-r--r--i/simulotron/src/gs/gs_message.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/i/simulotron/src/gs/gs_message.cc b/i/simulotron/src/gs/gs_message.cc
index b971cd9..818c433 100644
--- a/i/simulotron/src/gs/gs_message.cc
+++ b/i/simulotron/src/gs/gs_message.cc
@@ -51,19 +51,15 @@ GSMessage::readGS(void * data, size_t size)
str.assign(igs_, gs_.end());
if (size > str.size())
throw std::runtime_error("CHIER!!! La size dans readGS est trop grande!!");
- for (unsigned int i = 0; i < size; i++)
- {
- static_cast<char *> (data)[i] = *igs_;
- ++igs_;
- }
+ memcpy(data, str.data(), size);
+ igs_ += size;
}
void
GSMessage::writeGS (const void * data, size_t size)
{
+ gs_.append(static_cast<const char *> (data), size);
setIteratorBegin();
- for (unsigned int i = 0; i < size; ++i)
- gs_.push_back(static_cast<const char *> (data)[i]);
}
void
@@ -71,3 +67,10 @@ GSMessage::setIteratorBegin(void)
{
igs_ = gs_.begin();
}
+
+void
+GSMessage::clear(void)
+{
+ gs_.clear();
+ setIteratorBegin();
+}