--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/smilengine/engine/inc/smilparserold.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,336 @@
+/*
+* Copyright (c) 2003 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: smilparserold declaration
+*
+*/
+
+
+
+#ifndef PARSESMIL_H
+#define PARSESMIL_H
+
+// INCLUDES
+#include <e32base.h>
+#include <f32file.h>
+#include "smilpresentation.h"
+#include "parseelement.h"
+#include "smilobject.h"
+
+// FORWARD DECLARATIONS
+class CNode;
+class CResourceTestData;
+class CSmilAnchor;
+class CSmilTimeContainer;
+
+// CLASS DECLARATION
+
+/**
+* ?one_line_short_description.
+* ?other_description_lines
+*/
+class CParseSmil : public CBase
+ {
+ public: // Constructors and destructor
+
+
+ /**
+ * Two-phased constructor.
+ */
+ static CParseSmil* NewL( RFile& aFile, CSmilPresentation* aPresentation, RFs& aSession );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CParseSmil();
+
+ public: // New functions
+
+ /**
+ * Makes the syntax tree
+ */
+ void MakeTreeL();
+
+ /**
+ * This function carries out the actual parsing
+ */
+ void DoParseL();
+
+ /**
+ * Inserts a SMIL element into a node
+ * @param TDesC8& aElement
+ * @param CNode& aNode
+ */
+ void FoundElementL( const TDesC8& aElement, CNode& aNode );
+
+ /**
+ * Get the element node in the index given
+ * @param TInt aIndex
+ * @return CNode* pointer to the node
+ */
+ inline CNode* Element( TInt aIndex );
+
+ /**
+ * Return the number of elements in the syntax tree
+ * @return TInt number of elements
+ */
+ inline TInt ElementCount();
+
+ /**
+ * Check that the elements match.
+ */
+ void CheckMatchingL();
+
+ public: // Functions from base classes
+
+ /**
+ * From ?base_class ?member_description.
+ * @param ?arg1 ?description
+ * @return ?description
+ */
+
+ protected: // New functions
+
+ /**
+ * ?member_description.
+ * @param ?arg1 ?description
+ * @return ?description
+ */
+
+ protected: // Functions from base classes
+
+ /**
+ * From ?base_class ?member_description
+ */
+
+ private:
+
+ /**
+ * By default EPOC constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * By default C++ constructor is private.
+ */
+ CParseSmil( RFile& aFile, CSmilPresentation* aPresentation, RFs& aSession );
+
+ /**
+ * Parses the <region> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseRegionInfoL( TPtrC8& aPtr );
+
+ /**
+ * Parses the <smil> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseSmilInfo( TPtrC8& aPtr );
+
+ /**
+ * Parses the <body> tag of the presentation
+ * @param aPtr pointer to descriptor <- obsolete?
+ */
+ TBool ParseSwitchL( TInt& aSkip, CSmilTimeContainer* aParent, CSmilAnchor* aAnchor );
+
+ /**
+ * Parses the <body> tag of the presentation
+ * @param aPtr pointer to descriptor <- obsolete?
+ */
+ TBool EvaluateTestAttribute( const TInt aIndex,
+ const TPtrC8& aValue,
+ CResourceTestData& aTestData );
+
+ /**
+ * Parses the <body> tag of the presentation
+ * @param aPtr pointer to descriptor <- obsolete?
+ */
+ void IsContainer( TMediaSmil& aMedia );
+
+ /**
+ * Parses the <body> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ TBuf8<5> SelectEndingTag( const CSmilObject& aObject );
+
+ /**
+ * Parses the <body> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ TBuf8<7> SelectEndingTag( const TMediaSmil aMedia );
+
+ /**
+ * Parses the <body> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ TBuf8<7> SelectBeginTag( const TMediaSmil aMedia );
+
+ /**
+ * Parses the <body> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseHypeReferenceL( TPtrC8& aPtr, CSmilAnchor* aReference );
+
+ /**
+ * Parses the "I18n" collection of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseI18n( TPtrC8& aPtr );
+
+ /**
+ * Parses the "core" collection of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseCore( TPtrC8& aPtr, CSmilObject* aObject );
+
+ /**
+ * Parses the <root-layout> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseRootLayoutInfo( TPtrC8& aPtr );
+
+ /**
+ * Parses the <root-layout> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseLayoutInfo( TPtrC8& aPtr );
+
+ /**
+ * Parses the <img> and <text> tag of the presentation
+ * @param aPtr pointer to descriptor
+ * @param aObject media object
+ */
+ void ParseObjectL( TPtrC8& aPtr, CSmilMedia* aObject );
+
+ /**
+ * Parses the <ref> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseRef( TPtrC8& aPtr, CSmilMedia* aObject );
+
+ /**
+ * Parses the <seq> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseContainerL( TPtrC8& aDes, CSmilTimeContainer* aContainer );
+
+ /**
+ * Parses the <seq> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseTimingAttributes( TPtrC8& aPtr, CSmilObject* aObject );
+
+ /**
+ * Parses the <seq> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseRestartAndFill( TPtrC8& aPtr, CSmilObject* aObject );
+
+ /**
+ * Parses the <seq> tag of the presentation
+ * @param aPtr pointer to descriptor
+ */
+ void ParseEndSync( TPtrC8& aPtr, CSmilTimeContainer* aContainer );
+
+ /**
+ * Searches for a text string located between "quotation marks".
+ * @param aInt indicates the point where the reading starts
+ * @param aPtr a pointer to the descriptor to search
+ */
+ const TPtrC8 TraverseTextBuffer( TInt aInt, TPtrC8& aPtr );
+
+ /**
+ * Searches for a text string located between "quotation marks".
+ * @param aInt indicates the point where the reading starts
+ * @param aPtr a pointer to the descriptor to search
+ */
+ const TPtrC TraverseTextBuffer( TInt aInt, TPtr& aPtr );
+
+ /**
+ * Searches for a text string located between "quotation marks",
+ * and converts the string into the corresponding numeric value.
+ * @param aInt indicates the point where the reading starts
+ * @param aPtr a pointer to descriptor
+ * @return the converted value as integer
+ * or -1 if the search fails
+ */
+ TInt TraverseDimension( TInt aInt, TPtrC8& aPtr );
+
+ /**
+ * A tag was found.
+ * @param TLex8 aLex
+ * @param CNode* aParent
+ */
+ void FoundTagL( TLex8 aLex, CNode* aParent );
+
+ /**
+ * If FindTagL() finds a valid tag it calls this
+ * to carry on with the processing
+ * @param TLex8 aLex
+ * @param CNode* aParent
+ */
+ void ContinueL( TLex8 aLex, CNode* aParent );
+
+ /**
+ * Find the start of the tag and check if it's a comment
+ * @param TLex8 aLex
+ * @return TPtrC8 - descriptor to a started tag
+ */
+ const TPtrC8 FindStartOfTagL( TLex8 aLex );
+
+ /**
+ * Check the validity of the element
+ * @param TDesC8& aTag
+ * @return TInt true or false
+ */
+ TInt IsValid( const TDesC8& aTag );
+
+ /**
+ * Walk through the presentation and check the
+ * matching of the elements
+ */
+ void WalkL();
+
+ /**
+ * Read from file
+ * @param TInt& aRet - error code
+ * @return TLex8 - presentation
+ */
+ TLex8 ReadNext( TInt& aRet );
+
+ private: // Data
+
+ enum ParseState {
+ EInitial, ESmil, EHead, EBody, ELayout
+ };
+
+ RFile& iFile;
+ CSmilPresentation* iPresentation;
+ RFs& iSession;
+ TInt iParse;
+ HBufC8* iBuf;
+ HBufC8* iBuffer;
+ CNode* iNode;
+ CArrayPtrFlat<CNode>* iArray;
+ CSmilObject* iCurrent;
+
+ ParseState iState;
+
+ };
+
+#include "parsesmil.inl"
+
+#endif // ?INCLUDE_H
+
+// End of File
+