--- /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 <osn/ustring.h>
+#include <osn/osnnew.h>
+#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();
+ }
+}