diff -r 0aa8cc770c8a -r 4a793f564d72 connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmlhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmlhandler.h Wed Sep 01 12:20:56 2010 +0100 @@ -0,0 +1,123 @@ +/* +* Copyright (c) 2005-2007 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: ConML parser/generator +* +*/ + + +#ifndef _SCONCONMLHANDLER_H +#define _SCONCONMLHANDLER_H + +// ----------------------------------------------------------------------------- +// Includes +// ----------------------------------------------------------------------------- +#include "sconconmlgenerator.h" +#include "sconwbxmldefs.h" +#include "sconconmlhandlererror.h" +#include "sconconmldtd.h" + +// ----------------------------------------------------------------------------- +// Definitions and constants +// ----------------------------------------------------------------------------- + +_LIT8(KWBXMLNull, "\x00"); + +const TInt KSConBufferGranularity( 32 ); +const TInt KSConDefaultDocumentSize( 2048 ); + +// ----------------------------------------------------------------------------- +// TWBXMLStackItem +// ----------------------------------------------------------------------------- +NONSHARABLE_STRUCT( TWBXMLStackItem ) + { +public: + inline TWBXMLStackItem( TUint8 aTag ); + inline TUint8 Tag() const; + +private: + TUint8 iTag; + }; + +#include "sconwbxmlparser.inl" + +// ----------------------------------------------------------------------------- +// CSConConMLHandler - WBXML parsing +// ----------------------------------------------------------------------------- +class CSConConMLHandler : public CBase + { +public: + static CSConConMLHandler* NewL(); + ~CSConConMLHandler(); + + /** + * Starts the parsing of a WBXML document + * @param aInput - the WBXML document to be parsed + * @param aCallback - Call back function to call + * after the document is parsed + * @return An error code + */ + virtual TInt ParseDocumentL( CBufFlat& aInput, + MWBXMLConMLCallback* aCallback ); + + /** + * Starts the generating of a WBXML and XML document + * @param aContent - the data to be generated into the document + * @return An error code + */ + virtual TInt GenerateDocument( ConML_ConMLPtr_t aContent ); + + /** + * Returns the generated document in XML -format + * @param none + * @return The document as TPtrC8 + */ + virtual TPtrC8 XMLDocument(); + + /** + * Returns the generated document in WBXML -format + * @param none + * @return The document as TPtrC8 + */ + virtual TPtrC8 WBXMLDocument(); + +private: + CSConConMLHandler(); + void ConstructL(); + + TInt ParseL(); + TConMLParserError DoParseDocumentHeaderL(); + TConMLParserError DoParseDocumentBodyL(); + TUint8 ReadUint8L(); + TUint32 ReadMUint32L(); + TPtrC8 ReadStrIL(); + TPtrC8 StringTableString( TUint32 aIndex ); + void ReadStringTableL(); + TPtrC8 ReadOpaqueL(); + void HandleElementL( TUint8 aId ); + +private: + CSConConMLGenerator* iGenerator; + HBufC8* iStringTable; + CBufBase* iBuffer; + TBool iHeaderParsed; + RArray< TUint > iElemStack; + TInt iPos; + CBufFlat* iParseBuffer; + MWBXMLConMLCallback* iCallback; + }; + + IMPORT_C CSConConMLHandler* CreateCSConConMLHandlerL(); + typedef CSConConMLHandler* (*TSConCreateCSConConMLHandlerFunc) (); + +#endif