williamr@2: /*
williamr@2: * Copyright (c) 2004-2006 Nokia Corporation and/or its subsidiary(-ies). 
williamr@2: * All rights reserved.
williamr@2: * This component and the accompanying materials are made available
williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2: * which accompanies this distribution, and is available
williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2: *
williamr@2: * Initial Contributors:
williamr@2: * Nokia Corporation - initial contribution.
williamr@2: *
williamr@2: * Contributors:
williamr@2: *
williamr@2: * Description:       Serialization options functions
williamr@2: *
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: #ifndef XMLENGINE_SERIALIZATIONOPTIONS_H_INCLUDED
williamr@2: #define XMLENGINE_SERIALIZATIONOPTIONS_H_INCLUDED
williamr@2: 
williamr@2: #include <e32base.h>
williamr@2: 
williamr@2: // FORWARD DECLARATION
williamr@2: class MXmlEngOutputStream;
williamr@2: class MXmlEngDataSerializer;
williamr@2: class MXmlEngNodeFilter;
williamr@2: 
williamr@2: /**
williamr@2:  * Class allow to set serialization option during document save.
williamr@2:  * 
williamr@2:  * @lib XmlEngineDOM.lib
williamr@2:  * @since S60 v3.1
williamr@2:  */
williamr@2: class TXmlEngSerializationOptions 
williamr@2: 	{
williamr@2: public:
williamr@2:     /** Use indent in output */
williamr@2:     static const TUint KOptionIndent                 = 0x01;
williamr@2:     /** Skip xml declaration */
williamr@2: 	static const TUint KOptionOmitXMLDeclaration     = 0x02;
williamr@2: 	/** Add standalone in xml declaration. KOptionOmitXMLDeclaration must not be set */
williamr@2: 	static const TUint KOptionStandalone             = 0x04;
williamr@2: 	/** Add encoding in xml declaration. KOptionOmitXMLDeclaration must not be set */
williamr@2: 	static const TUint KOptionEncoding               = 0x08;
williamr@2: 	/** Not supported currently */
williamr@2: 	static const TUint KOptionIncludeNsPrefixes      = 0x10;
williamr@2: 	/** Not supported currently */
williamr@2: 	static const TUint KOptionCDATASectionElements   = 0x20;
williamr@2: 	/** Decode base64 encoded binary containers content upon XOP serialization*/
williamr@2: 	static const TUint KOptionDecodeBinaryContainers		 = 0x40;	
williamr@2:     
williamr@2: 	/**
williamr@2:      * Constructor
williamr@2:      *
williamr@2:      * @since S60 v3.1
williamr@2: 	 * @param aOptionFlags Serialization options
williamr@2:      * @param aEncoding Serialization encoding
williamr@2:      */
williamr@2:     IMPORT_C TXmlEngSerializationOptions( TUint aOptionFlags = 
williamr@2:     								   (TXmlEngSerializationOptions::KOptionIndent | 
williamr@2:     									TXmlEngSerializationOptions::KOptionStandalone |
williamr@2:     									TXmlEngSerializationOptions::KOptionEncoding), 
williamr@2:                                     const TDesC8& aEncoding = KNullDesC8);
williamr@2: 
williamr@2: 	/**
williamr@2:      * Set node filter
williamr@2:      *
williamr@2:      * @since S60 v3.1
williamr@2: 	 * @param aFilter New node filter
williamr@2:      */
williamr@2:     IMPORT_C void SetNodeFilter(MXmlEngNodeFilter* aFilter);  
williamr@2: 
williamr@2: public:
williamr@2: 	/** Options flag */
williamr@2:     TUint iOptions;
williamr@2: 	/** Encoding */
williamr@2:     TPtrC8 iEncoding;
williamr@2: 	/** Node filter */
williamr@2:     MXmlEngNodeFilter* iNodeFilter;
williamr@2:     /** Object whose serialization callback is invoked **/
williamr@2:     MXmlEngDataSerializer* iDataSerializer;
williamr@2: 	};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: #endif /* XMLENGINE_SERIALIZATIONOPTIONS_H_INCLUDED */