williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // Header STRNG.INL williamr@2: // williamr@2: // williamr@2: williamr@2: inline String::String() williamr@2: : iLength(0), iText(NULL) williamr@2: { williamr@2: } williamr@2: williamr@2: inline String::String(const char* aText) williamr@2: : iLength(0), iText(NULL) williamr@2: { williamr@2: if (aText && CreateText(strlen(aText))) williamr@2: { williamr@2: CopyText(iText, aText, iLength); williamr@2: iText[iLength] = '\0'; williamr@2: } williamr@2: } williamr@2: williamr@2: inline String::String(int aLength,char* aText) williamr@2: : iLength(0), iText(NULL) williamr@2: { williamr@2: if (aText && CreateText(aLength)) williamr@2: { williamr@2: CopyText(iText, aText, aLength); williamr@2: iText[iLength] = '\0'; williamr@2: } williamr@2: } williamr@2: williamr@2: inline String::String(const String& aString) williamr@2: : iLength(0), iText(NULL) williamr@2: { williamr@2: if (CreateText(aString.iLength)) williamr@2: { williamr@2: CopyText(iText, aString.iText, iLength); williamr@2: iText[iLength] = '\0'; williamr@2: } williamr@2: } williamr@2: williamr@2: inline String& String::operator = (const char* aText) williamr@2: { williamr@2: char* text = iText; williamr@2: if (CreateText(strlen(aText))) williamr@2: { williamr@2: CopyText(iText, aText, iLength); williamr@2: iText[iLength] = '\0'; williamr@2: DeleteText(text); williamr@2: } williamr@2: return *this; williamr@2: } williamr@2: williamr@2: inline String& String::operator = (const String& aString) williamr@2: { williamr@2: String string(aString); williamr@2: char* text = iText; williamr@2: if (CreateText(string.iLength)) williamr@2: { williamr@2: CopyText(iText, string.iText, iLength); williamr@2: iText[iLength] = '\0'; williamr@2: DeleteText(text); williamr@2: } williamr@2: return *this; williamr@2: } williamr@2: williamr@2: inline String& String::operator += (const char aChar) williamr@2: { williamr@2: char* text = iText; williamr@2: if (CreateText(iLength + 1)) williamr@2: { williamr@2: CopyText(iText, text, iLength - 1); williamr@2: iText[iLength - 1] = aChar; williamr@2: iText[iLength] = '\0'; williamr@2: DeleteText(text); williamr@2: } williamr@2: return *this; williamr@2: } williamr@2: williamr@2: inline String& String::operator += (const String& aString) williamr@2: { williamr@2: char* text = iText; williamr@2: int length = iLength; williamr@2: if (CreateText(length + aString.iLength)) williamr@2: { williamr@2: CopyText(iText, text, length); williamr@2: CopyText(iText + length, aString.iText, aString.iLength); williamr@2: iText[iLength] = '\0'; williamr@2: DeleteText(text); williamr@2: } williamr@2: return *this; williamr@2: } williamr@2: williamr@2: inline int String::operator == (const String& aString) const williamr@2: { williamr@2: boolean same = etrue; williamr@2: if (iLength != aString.iLength) williamr@2: same = efalse; williamr@2: else williamr@2: { williamr@2: for (int i = 0; i < iLength; i++) williamr@2: same = same && ((*this)[i] == aString[i]); williamr@2: } williamr@2: return same; williamr@2: } williamr@2: williamr@2: inline char& String::operator [] (const int aNum) const williamr@2: { williamr@2: return iText[aNum]; williamr@2: } williamr@2: williamr@2: inline int String::Length() const williamr@2: { williamr@2: return iLength; williamr@2: } williamr@2: williamr@2: inline const char* String::Text() williamr@2: { williamr@2: return iText; williamr@2: } williamr@2: williamr@2: inline void String::CopyText(char* aDest, const char* aSource, int aLength) const williamr@2: { williamr@2: for (int i = 0; i < aLength; i++) williamr@2: aDest[i] = aSource[i]; williamr@2: }