sl@0: // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // File contains local functions for use by the Uri parser classes defined in sl@0: // Uri8.h and Uri16.h sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file TUriParserInternal.h sl@0: @see Uri8.h, Uri16.h sl@0: */ sl@0: sl@0: #ifndef __TURIPARSERINTERNAL_H__ sl@0: #define __TURIPARSERINTERNAL_H__ sl@0: sl@0: // System includes sl@0: // sl@0: #include sl@0: sl@0: /** sl@0: enum TDelimiterSearchFlag sl@0: Enum defining a set of flags used for search delimiter searching. sl@0: @internalComponent sl@0: @released sl@0: @since 6.0 sl@0: sl@0: */ sl@0: enum TDelimiterSearchFlag sl@0: { sl@0: /* Specifier for colon delimiter */ sl@0: EColonDelimiterFlag = 0x001, sl@0: /* Specifier for slash delimiter */ sl@0: ESlashDelimiterFlag = 0x002, sl@0: /* Specifier for query delimiter */ sl@0: EQueryDelimiterFlag = 0x004, sl@0: /* Specifier for hash delimiter */ sl@0: EHashDelimiterFlag = 0x008, sl@0: /* Specifier for semi-colon delimiter */ sl@0: ESemiColonDelimiterFlag = 0x010, sl@0: /* Specifier for query delimiter search */ sl@0: EQueryDelimiterSearch = EHashDelimiterFlag, sl@0: /* Specifier for path delimiter seacrh */ sl@0: EPathDelimiterSearch = EQueryDelimiterSearch | EQueryDelimiterFlag, sl@0: /* Specifier for authority delimiter search */ sl@0: EAuthDelimiterSearch = EPathDelimiterSearch | ESlashDelimiterFlag, sl@0: /* Specifier for scheme delimiter seacrh */ sl@0: ESchemeDelimiterSearch = EAuthDelimiterSearch | EColonDelimiterFlag sl@0: }; sl@0: sl@0: template sl@0: void DoParseUri(const TPtrCType& aUri, TPtrCType aComponent[]); sl@0: sl@0: template sl@0: TInt ParseScheme(const TPtrCType& aUri, TPtrCType& aScheme); sl@0: sl@0: template sl@0: TInt ParseAuthority(const TPtrCType& aUri, TPtrCType& aUserinfo, TPtrCType& aHost, TPtrCType& aPort, TBool aUseNetworkDelimiter); sl@0: sl@0: sl@0: template sl@0: TInt ParsePath(const TPtrCType& aUri, TPtrCType& aPath); sl@0: sl@0: template sl@0: TInt ParseQuery(const TPtrCType& aUri, TPtrCType& aQuery); sl@0: sl@0: sl@0: template sl@0: TInt ParseFragment(const TPtrCType& aUri, TPtrCType& aFragment); sl@0: sl@0: template sl@0: TInt FindFirstUriDelimiter(const TPtrCType& aString, TDelimiterSearchFlag aSearchFlag); sl@0: sl@0: #endif // __TURIPARSERINTERNAL_H__