diff -r 4ea6f81c838a -r 0e9bb658ef58 osncore/osncore/src/ustring.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/osncore/osncore/src/ustring.cpp Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,278 @@ +/* +* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: utf8 encoded byte container +* +*/ + + +#include +#include +#include "ustringimpl.h" + + +namespace osncore +{ +static const char* const KInvalidUtf8 = "InvalidUtf8"; +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT const char* UString::InvalidUtf8::what()const throw() + { + return KInvalidUtf8; + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT UString::UString():mImpl(new(EMM)UStringImpl()) + { + + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT UString::UString(const Utf8* aStr) + :mImpl(new(EMM)UStringImpl(aStr)) + { + + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT UString::UString(const Utf8* aStr, int aLen) + :mImpl(new(EMM)UStringImpl(aStr, aLen)) + { + + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT UString::UString(const UString& aUString) + :mImpl(new(EMM)UStringImpl(*aUString.mImpl.get())) + { + + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT UString::UString(Unicode aCodePoint) + :mImpl(new(EMM)UStringImpl(aCodePoint)) + { + + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT UString& UString::operator=(const UString& aRhs) + { + if (this != &aRhs) + { + UStringImpl* tmp = new (EMM)UStringImpl(*aRhs.mImpl.get()); + mImpl.reset(tmp); + } + + return *this; + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT UString& UString::operator=(const Utf8* aRhs) + { + if (aRhs) + { + UStringImpl* tmp = new (EMM)UStringImpl(aRhs); + mImpl.reset(tmp); + } + + return *this; + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT UString::~UString() + { + + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT bool UString::isEmpty()const + { + return mImpl->empty(); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT long UString::getCharLength()const + { + return mImpl->length(); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT long UString::getByteLength()const + { + return mImpl->bytes(); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT const Utf8* UString::getUtf8()const + { + return mImpl->utf8(); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT int UString::compareC(const UString& aUString)const + { + return mImpl->compareC(*aUString.mImpl.get()); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT int UString::compareC(const Utf8* aStr)const + { + return mImpl->compareC(aStr); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT int UString::compare(const UString& aUString)const + { + return mImpl->compare(*aUString.mImpl.get()); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT int UString::compare(const Utf8* aStr)const + { + return mImpl->compare(aStr); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT bool UString::operator==(const UString& aRhs)const + { + return !mImpl->compare(*aRhs.mImpl.get()); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT bool UString::operator==(const Utf8* aRhs)const + { + return !mImpl->compare(aRhs); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT void UString::append(const UString& aUString) + { + mImpl->append(*aUString.mImpl.get()); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT void UString::append(const Utf8* aStr) + { + mImpl->append(aStr); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT void UString::insert( + long aPos, + const Utf8* aStr) + { + mImpl->insert(aPos, aStr); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT void UString::insert( + long aPos, + const Utf8* aStr, + long aLength) + { + mImpl->insert(aPos, aStr,aLength); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT void UString::replace( + long aPos, + const Utf8* aStr) + { + mImpl->replace(aPos, aStr); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT void UString::replace( + long aPos, + const Utf8* aStr, + long aLength) + { + mImpl->replace(aPos, aStr, aLength); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT void UString::erase( + long aPos, + long aLength) + { + mImpl->erase(aPos, aLength); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT Unicode UString::operator[](long aIndex) + { + return mImpl->operator[](aIndex); + } + +// ------------------------------------------------------------------------- +// ------------------------------------------------------------------------- +// +OSN_EXPORT bool UString::isNull()const + { + return mImpl->null(); + } +}