diff -r 7333d7932ef7 -r 8b7f4e561641 secureswitools/swisistools/source/rscparser/parse.cpp --- a/secureswitools/swisistools/source/rscparser/parse.cpp Tue Aug 31 15:21:33 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,373 +0,0 @@ -// Copyright (c) 2009 - 2010 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: -// -// -// -/** -* @file parse.cpp -* -* @internalComponent -* @released -*/ -#include "parse.h" -#include "barsc2.h" - -std::string FullNameWithoutDrive(std::string& Buf ) - { - std::string iName; - std::string::size_type index = Buf.find( ':' ); - if( index != std::string::npos ) - iName.assign(Buf, index+1, Buf.size()); - - return iName; - } - -/** - * Converts from Ptr8* datatype to wstring - */ -std::wstring Ptr8ToWstring(const Ptr8* aBuf) -{ - std::wstring str2(aBuf->GetLength(), L'\0'); // Make room for characters - - TUint8* temp = aBuf->GetPtr(); - memcpy(str2.begin(),temp,aBuf->GetLength()); - - return str2; -} - -/** - * Converts from Ptr16* datatype to wstring - */ -std::wstring Ptr16ToWstring(const Ptr16* aBuf) -{ - std::wstring str2(aBuf->GetLength(), L'\0'); // Make room for characters - - TUint16* temp = aBuf->GetPtr(); - std::copy(temp,temp+aBuf->GetLength(),str2.begin()); - - return str2; -} - -/** - * Converts from Ptr16* datatype to string - */ -std::string Ptr16ToString(Ptr16* aBuf) -{ - std::string str2(aBuf->GetLength(), '\0'); // Make room for characters - - TUint16* temp = aBuf->GetPtr(); - for(int i =0; iGetLength(); i++) - { - str2[i] = *temp++; - } - str2[aBuf->GetLength()] = '\0'; - return str2; -} - -//Local function to Copy TUint16 -void BufCpy(TUint16* aTemp1,TUint16* aTemp2, TInt aLength) -{ - for(TInt i =0 ; i< aLength; i++) - { - *aTemp1++ = *aTemp2++; - } -} - -//Local function to Copy TUint8 -void BufCpy8(TUint8* aTemp1, const TUint8* aTemp2, TInt aLength) -{ - for(TInt i =0 ; i< aLength; i++) - { - *aTemp1++ = *aTemp2++; - } -} - -//Search for either wild character in the input string. -//return 1 if found else return 0 -TInt FindWild(PtrC16 *aPtr) -{ - TUint32 i = 0; - const TUint16* Pt = aPtr->iPtr; - for( i=0; i < aPtr->iMaxLength; i++) - { - if((*Pt=='*') || (*Pt=='?')) - return 1; - else - Pt++; - } - return 0; -} - -//Find if wild character present in the input string -//return 1 if found else return 0 -TInt FindWild(std::string& aRegistrationFileDrive, std::string& aAppFilePath, std::string& aAppFileNameAndExt) -{ - - string::size_type index1 = aRegistrationFileDrive.find_last_of("*?"); - if( index1 != string::npos ) - return 1; - - string::size_type index2 = aAppFilePath.find_last_of("*?"); - if( index2 != string::npos ) - return 1; - - string::size_type index3 = aAppFileNameAndExt.find_last_of("*?"); - if( index3 != string::npos ) - return 1; - return 0; -} - -//Default Constructor for class ParsePtrC -ParsePtrC::ParsePtrC() - : iNamePresent(0),iPathPresent(0),iExtPresent(0),iDrivePresent(0) -{ -} - -//Destructor for class ParsePtrC -ParsePtrC::~ParsePtrC() -{ - delete iNameBuf; - delete Buf; - iNameBuf = NULL; - Buf = NULL; -} - -//To Avoid double Delete in destructor. -void ParsePtrC::SetToNull() -{ - iNameBuf = NULL; -} - -//Constructor for class ParsePtrC -ParsePtrC::ParsePtrC(const PtrC16* aName) - : iNamePresent(0),iPathPresent(0),iExtPresent(0),iDrivePresent(0) - { - iNameBuf = new PtrC16; - TUint16* temp = (TUint16*)aName->iPtr; - if(NULL==iNameBuf) - { - std::string errMsg= "Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - iNameBuf->iPtr = aName->iPtr; - iNameBuf->iMaxLength = aName->iMaxLength; - - Buf = new string(aName->iMaxLength,'\0'); - - if(NULL==Buf) - { - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - - for(TInt i = 0; iiMaxLength; i++ ) - { - (*Buf)[i] = *temp; - temp++; - } -} - -PtrC16* ParsePtrC::FullName() -{ - return iNameBuf; -} - -std::string ParsePtrC::StrName() -{ - return *Buf; -} - -//Constructor for class ParsePtrC -ParsePtrC::ParsePtrC(std::string aStr) - : iNamePresent(0),iPathPresent(0),iExtPresent(0),iDrivePresent(0) -{ - Buf = new string; - if(NULL==Buf) - { - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - *Buf = aStr; -} - -std::string ParsePtrC::Name() -{ - string iName; - - #ifdef __LINUX__ - TInt i = Buf->rfind("/"); - #else - TInt i = Buf->rfind("\\"); - #endif - - if(i!=string::npos) - iName.assign(*Buf, i, Buf->size()-4); - else - { - if(ExtPresent()) - iName.assign(*Buf, i, Buf->size()-4); - else - iName.assign(*Buf, 0, Buf->size()); - } - - return iName; -} - -std::string ParsePtrC::NameAndExt() -{ - string iName; - - #ifdef __LINUX__ - TInt i = Buf->rfind("/"); - #else - TInt i = Buf->rfind("\\"); - #endif - - if(i!=string::npos) - iName.assign(*Buf, i, Buf->size()); - - return iName; -} - -std::string ParsePtrC::FullPath() -{ - string iName; - - #ifdef __LINUX__ - TInt i = Buf->rfind("/"); - #else - TInt i = Buf->rfind("\\"); - #endif - - if(i!=string::npos) - iName.assign(*Buf, 0, i); - - return iName; -} - -std::string ParsePtrC::Path() -{ - string iName; - - #ifdef __LINUX__ - TInt j = Buf->rfind("/"); - TInt i = Buf->find("/"); - #else - TInt j = Buf->rfind("\\"); - TInt i = Buf->find("\\"); - #endif - - if(i!=string::npos) - iName.assign(*Buf, i, Buf->size()-j); - - return iName; -} - -std::string ParsePtrC::Drive() -{ - string iName; - - string::size_type index = Buf->find( ':' ); - if( index != string::npos ) - iName.assign(*Buf, index-1, 2); - - return iName; -} - -std::string ParsePtrC::FullNameWithoutDrive() -{ - string iName; - - string::size_type index = Buf->find( ':' ); - if( index != string::npos ) - iName.assign(*Buf, index+1, Buf->size()); - - return iName; -} - -TInt ParsePtrC::NamePresent() -{ - #ifdef __LINUX__ - TInt i = Buf->rfind("/"); - #else - TInt i = Buf->rfind("\\"); - #endif - - if(i!=string::npos) - iNamePresent = 1; - else - { - if(Buf!= NULL) - iNamePresent = 1; - else - iNamePresent = 0; - } - return iNamePresent; -} - -TInt ParsePtrC::PathPresent() -{ - #ifdef __LINUX__ - TInt i = Buf->find("/"); - #else - TInt i = Buf->find("\\"); - #endif - - if(i!=string::npos) - iPathPresent = 1; - else - iPathPresent = 0; - return iPathPresent; -} - -TInt ParsePtrC::ExtPresent() -{ - TInt i = Buf->find("."); - if(i!=string::npos) - iExtPresent = 1; - else - iExtPresent = 0; - return iExtPresent; -} - -TInt ParsePtrC::DrivePresent() -{ - TInt i = Buf->find(":"); - if(i!=string::npos) - iDrivePresent = 1; - else - iDrivePresent = 0; - return iDrivePresent; -} - -TInt ParsePtrC::IsWild() -{ - string::size_type index = Buf->find_last_of("*?"); - if( index != string::npos ) - return 1; - return 0; -} - -TInt ParsePtrC::IsValidName() -{ - #ifdef __LINUX__ - string::size_type index = Buf->find_last_of("*?< > : \" \\ |"); - #else - string::size_type index = Buf->find_last_of("*?< > : \" |"); - #endif - - if( index != string::npos ) - return 1; - return 0; -}