/* * Copyright (C) 2007-2013 Xagasoft, All rights reserved. * * This file is part of the libgats library and is released under the * terms of the license contained in the file LICENSE. */ #include "gats-qt/string.h" #include "gats-qt/integer.h" Gats::String::String() { } Gats::String::String( const char *s ) : QByteArray( s ) { } Gats::String::String( const char *s, long iLength ) : QByteArray( s, iLength ) { } Gats::String::String( long iLength ) : QByteArray( iLength, '\0' ) { } Gats::String::String( const String &s ) : QByteArray( s ) { } Gats::String::String( const QByteArray &s ) : QByteArray( s ) { } Gats::String::~String() { } Gats::Object *Gats::String::clone() const { QByteArray baClone = *this; baClone.detach(); return new Gats::String( baClone ); } void Gats::String::write( QIODevice &rOut ) const { rOut.write("s", 1 ); uint32_t iSize = size(); Gats::Integer::writePackedInt( rOut, iSize ); rOut.write( constData(), iSize ); } void Gats::String::read( QIODevice &rIn, char /*cType*/ ) { uint32_t iSize; Gats::Integer::readPackedInt( rIn, iSize ); fill( '\0', iSize ); rIn.read( data(), iSize ); } QString Gats::String::toString( int /*iIndent*/ ) const { QString sRet("\""); for( const_iterator iS = begin(); iS != end(); iS++ ) { switch( *iS ) { case '\\': sRet += "\\"; break; case '\"': sRet += "\\\""; break; default: sRet += *iS; break; } } sRet += "\""; return sRet; } /* Bu::Formatter &operator<<( Bu::Formatter &f, const Gats::String &s ) { return f << "(str) \"" << dynamic_cast(s) << "\""; } */