From eb71d88041ccbb0aec3532f9b1aa40e956e948c2 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Sat, 13 May 2006 01:54:06 +0000 Subject: Changed some things in the serializer...it's cool --- src/serializer.cpp | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'src/serializer.cpp') diff --git a/src/serializer.cpp b/src/serializer.cpp index 5982a26..d41cc64 100644 --- a/src/serializer.cpp +++ b/src/serializer.cpp @@ -1,5 +1,6 @@ #include "serializer.h" #include "serializable.h" +#include Serializer::Serializer(bool bLoading): bLoading(bLoading) @@ -159,16 +160,16 @@ Serializer::Serializer &operator&(long double &p) }*/ -Serializer &Serializer::operator<<(Serializable &p) +Serializer &operator<<(Serializer &s, Serializable &p) { - p.serialize(*this); - return *this; + p.serialize( s ); + return s; } -Serializer &Serializer::operator>>(Serializable &p) +Serializer &operator>>(Serializer &s, Serializable &p) { - p.serialize(*this); - return *this; + p.serialize( s ); + return s; } /*Serializer::Serializer &operator&(Serializable &p) @@ -183,3 +184,20 @@ Serializer &Serializer::operator>>(Serializable &p) } }*/ +Serializer &operator<<( Serializer &ar, std::string &s ) +{ + ar << s.length(); + ar.write( s.c_str(), s.length() ); +} + +Serializer &operator>>( Serializer &ar, std::string &s ) +{ + int l; + ar >> l; + char *tmp = new char[l+1]; + tmp[l] = '\0'; + ar.read( tmp, l ); + s = tmp; + delete tmp; +} + -- cgit v1.2.3