williamr@2: /* williamr@2: * Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: This is an abstract interface enabling factory pattern williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #ifndef SEN_PARSER_H williamr@2: #define SEN_PARSER_H williamr@2: williamr@4: #include williamr@4: #include williamr@2: williamr@2: using namespace Xml; williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class CSenContentHandler; williamr@2: class CSenFragmentBase; williamr@2: williamr@2: class CSenParser : public CBase williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: williamr@2: /** williamr@2: * Standard 2 phase constructor. williamr@2: * @since Series60 4.0 williamr@2: */ williamr@2: IMPORT_C static CSenParser* NewL(); williamr@2: /** williamr@2: * Standard 2 phase constructor. williamr@2: * @since Series60 4.0 williamr@2: */ williamr@2: IMPORT_C static CSenParser* NewLC(); williamr@2: williamr@2: /** williamr@2: * Standard 2 phase constructor. williamr@2: * @param aParser : where construction williamr@2: * data will be copied from. williamr@2: * @since Series60 4.0 williamr@2: */ williamr@2: IMPORT_C static CSenParser* NewL(CParser* aParser); williamr@2: /** williamr@2: * Standard 2 phase constructor. williamr@2: * @param aParser : where construction williamr@2: * data will be copied from. williamr@2: * @since Series60 4.0 williamr@2: */ williamr@2: IMPORT_C static CSenParser* NewLC(CParser* aParser); williamr@2: williamr@2: /** williamr@2: * Standard 2 phase constructor. williamr@2: * @param aParserMimeType : where construction williamr@2: * data will be copied from. williamr@2: * @since Series60 4.0 williamr@2: */ williamr@2: IMPORT_C static CSenParser* NewL(const TDesC8& aParserMimeType); williamr@2: /** williamr@2: * Standard 2 phase constructor. williamr@2: * @param aParserMimeType : where construction williamr@2: * data will be copied from. williamr@2: * @since Series60 4.0 williamr@2: */ williamr@2: IMPORT_C static CSenParser* NewLC(const TDesC8& aParserMimeType); williamr@2: williamr@2: /** williamr@2: * Sets the ContentHandler williamr@2: * @param aContentHandler williamr@2: */ williamr@2: virtual void SetContentHandler(CSenFragmentBase& aContentHandler) = 0; williamr@2: williamr@2: /** williamr@2: * Parsing Begins williamr@2: */ williamr@2: virtual void ParseBeginL() = 0; williamr@2: /** williamr@2: * Parsing Begins williamr@2: * @param aDocumentMimeType This contains the Mime Type williamr@2: */ williamr@2: virtual void ParseBeginL(const TDesC8& aDocumentMimeType) = 0; williamr@2: williamr@2: /** williamr@2: * Parsing williamr@2: * @param aFragment williamr@2: * @param aContentHandler williamr@2: */ williamr@2: virtual void ParseL(const TDesC8& aFragment, williamr@2: CSenFragmentBase& aContentHandler) = 0; williamr@2: /** williamr@2: * Parsing williamr@2: * @param aFs williamr@2: * @param aFilename williamr@2: * @param aContentHandler williamr@2: */ williamr@2: virtual void ParseL(RFs& aFs, const TDesC& aFilename, williamr@2: CSenFragmentBase& aContentHandler) = 0; williamr@2: /** williamr@2: * Parsing williamr@2: * @param aFs williamr@2: * @param aContentHandler williamr@2: */ williamr@2: virtual void ParseL(RFile& aFile, CSenFragmentBase& aContentHandler) = 0; williamr@2: williamr@2: /** williamr@2: * Parsing Ends williamr@2: */ williamr@2: virtual void ParseEndL() = 0; williamr@2: williamr@2: /** williamr@2: * Sets the Processor Chain williamr@2: */ williamr@2: virtual void SetProcessorChainL(const RContentProcessorUids& aPlugins) = 0; williamr@2: williamr@2: /** williamr@2: * Enables the Parsing Feature williamr@2: */ williamr@2: virtual TInt EnableFeature(TInt aParserFeature) = 0; williamr@2: /** williamr@2: * Disables the Parsing Feature williamr@2: */ williamr@2: virtual TInt DisableFeature(TInt aParserFeature) = 0; williamr@2: /** williamr@2: * @param aParserFeature williamr@2: * @return True if parser feature is enabled williamr@2: * False if parser feature is disabled williamr@2: */ williamr@2: virtual TBool IsFeatureEnabled(TInt aParserFeature) const = 0; williamr@2: /** williamr@2: * williamr@2: */ williamr@2: virtual void AddPreloadedDictionaryL(const TDesC8& aPublicId) = 0; williamr@2: williamr@2: /** williamr@2: * williamr@2: */ williamr@2: virtual RStringPool& StringPool() = 0; williamr@2: /** williamr@2: * williamr@2: */ williamr@2: virtual RStringDictionaryCollection& StringDictionaryCollection() = 0; williamr@2: williamr@2: protected: williamr@2: CSenParser(); williamr@2: }; williamr@2: williamr@2: williamr@2: #endif //SEN_PARSER_H williamr@2: williamr@2: // End of File