xml/xmlparser/inc/CXMLObserver.h
author hgs
Wed, 23 Jun 2010 20:27:15 +0530
changeset 24 74f0b3eb154c
child 25 417699dc19c9
permissions -rw-r--r--
201024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  ?Description
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef __CXMLOBSERVER_H
hgs
parents:
diff changeset
    21
#define __CXMLOBSERVER_H
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
//  INCLUDES
hgs
parents:
diff changeset
    24
#include <e32std.h>
hgs
parents:
diff changeset
    25
//#include <eikenv.h>
hgs
parents:
diff changeset
    26
#include <badesca.h>  
hgs
parents:
diff changeset
    27
#include <txtetext.h>  
hgs
parents:
diff changeset
    28
#include "CXMLAttributes.h"
hgs
parents:
diff changeset
    29
#include <xml/MXMLContentHandler.h>
hgs
parents:
diff changeset
    30
#include <xml/MWBXMLContentHandler.h>
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
// CLASS DECLARATION
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
/**
hgs
parents:
diff changeset
    36
*  Help class for CXMLReader.
hgs
parents:
diff changeset
    37
*  @lib XMLInterface.dll
hgs
parents:
diff changeset
    38
*  @since ?Series60_version
hgs
parents:
diff changeset
    39
*/
hgs
parents:
diff changeset
    40
class CXMLObserver : public CBase
hgs
parents:
diff changeset
    41
    {
hgs
parents:
diff changeset
    42
	public:  // Constructors and destructor
hgs
parents:
diff changeset
    43
        
hgs
parents:
diff changeset
    44
        /**
hgs
parents:
diff changeset
    45
        * Two-phased constructor.
hgs
parents:
diff changeset
    46
        */
hgs
parents:
diff changeset
    47
        static CXMLObserver* NewL();
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
		static CXMLObserver* NewLC();
hgs
parents:
diff changeset
    50
        
hgs
parents:
diff changeset
    51
        /**
hgs
parents:
diff changeset
    52
        * Destructor.
hgs
parents:
diff changeset
    53
        */
hgs
parents:
diff changeset
    54
        ~CXMLObserver();
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
public: // New functions
hgs
parents:
diff changeset
    57
        
hgs
parents:
diff changeset
    58
/**
hgs
parents:
diff changeset
    59
* Registers content handler
hgs
parents:
diff changeset
    60
* @since ?Series60_version
hgs
parents:
diff changeset
    61
* @param aContentHandler: The ContentHandler to use.
hgs
parents:
diff changeset
    62
* @return none.
hgs
parents:
diff changeset
    63
*/
hgs
parents:
diff changeset
    64
	inline void SetContentHandler(MXMLContentHandler* aContentHandler){iContentHandler = aContentHandler;}
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
/**
hgs
parents:
diff changeset
    67
* Registers a binary content handler
hgs
parents:
diff changeset
    68
* @since ?Series60_version
hgs
parents:
diff changeset
    69
* @param aContentHandler: The ContentHandler to use.
hgs
parents:
diff changeset
    70
* @return none.
hgs
parents:
diff changeset
    71
*/
hgs
parents:
diff changeset
    72
	inline void SetContentHandler(MWBXMLContentHandler* aContentHandler){iBinaryContentHandler = aContentHandler;}
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
/**
hgs
parents:
diff changeset
    75
* Gets content handler
hgs
parents:
diff changeset
    76
* @since ?Series60_version
hgs
parents:
diff changeset
    77
* @param none.
hgs
parents:
diff changeset
    78
* @return ContentHandler.
hgs
parents:
diff changeset
    79
*/
hgs
parents:
diff changeset
    80
	inline MXMLContentHandler* GetContentHandler(){return iContentHandler;}
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
	/**
hgs
parents:
diff changeset
    83
* Gets binary content handler
hgs
parents:
diff changeset
    84
* @since ?Series60_version
hgs
parents:
diff changeset
    85
* @param none.
hgs
parents:
diff changeset
    86
* @return ContentHandler.
hgs
parents:
diff changeset
    87
*/
hgs
parents:
diff changeset
    88
	inline MWBXMLContentHandler* GetBinaryContentHandler(){return iBinaryContentHandler;}
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
/**
hgs
parents:
diff changeset
    92
* Gets current attribute list
hgs
parents:
diff changeset
    93
* @since ?Series60_version
hgs
parents:
diff changeset
    94
* @return pointer to current attribute list
hgs
parents:
diff changeset
    95
*/
hgs
parents:
diff changeset
    96
	inline CXMLAttributes* GetAttributes(){return iAttributes;}
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
/**
hgs
parents:
diff changeset
    99
* Get current element
hgs
parents:
diff changeset
   100
* @since ?Series60_version
hgs
parents:
diff changeset
   101
* @return Current element
hgs
parents:
diff changeset
   102
*/
hgs
parents:
diff changeset
   103
	TPtrC GetElement() const;
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
/**
hgs
parents:
diff changeset
   106
* Set current element
hgs
parents:
diff changeset
   107
* @since ?Series60_version
hgs
parents:
diff changeset
   108
* @param Current element
hgs
parents:
diff changeset
   109
* @return none.
hgs
parents:
diff changeset
   110
*/
hgs
parents:
diff changeset
   111
	void SetElementL(const TPtrC &aName);
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
/**
hgs
parents:
diff changeset
   114
* Remove current element
hgs
parents:
diff changeset
   115
* @since ?Series60_version
hgs
parents:
diff changeset
   116
* @return none
hgs
parents:
diff changeset
   117
*/
hgs
parents:
diff changeset
   118
	void RemoveElement();
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
/**
hgs
parents:
diff changeset
   121
* Set element URI
hgs
parents:
diff changeset
   122
* @since ?Series60_version
hgs
parents:
diff changeset
   123
* @param aURI: the URI.
hgs
parents:
diff changeset
   124
* @param aNSextension: namespace extension mapped to aURI.
hgs
parents:
diff changeset
   125
* @return none
hgs
parents:
diff changeset
   126
*/
hgs
parents:
diff changeset
   127
	void SetURIL(const TPtrC &aURI, const TPtrC &aNSextension);
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
/**
hgs
parents:
diff changeset
   130
* Get element URI
hgs
parents:
diff changeset
   131
* @since ?Series60_version
hgs
parents:
diff changeset
   132
* @param aNSextension: namespace extension mapped to aURI.
hgs
parents:
diff changeset
   133
* @return the URI.
hgs
parents:
diff changeset
   134
*/
hgs
parents:
diff changeset
   135
	TPtrC GetURI(const TPtrC &aNSextension) const;
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
/**
hgs
parents:
diff changeset
   138
* ResetURI, reset URI list
hgs
parents:
diff changeset
   139
* @since ?Series60_version
hgs
parents:
diff changeset
   140
* @return none.
hgs
parents:
diff changeset
   141
*/
hgs
parents:
diff changeset
   142
	void ResetURI();
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
private:
hgs
parents:
diff changeset
   146
/**
hgs
parents:
diff changeset
   147
* C++ default constructor.
hgs
parents:
diff changeset
   148
*/
hgs
parents:
diff changeset
   149
	CXMLObserver(); 
hgs
parents:
diff changeset
   150
	
hgs
parents:
diff changeset
   151
	void ConstructL();
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
public:	   // Data
hgs
parents:
diff changeset
   154
	// Keeps current attribute name
hgs
parents:
diff changeset
   155
	TPtrC* iCurrentAttribute;	
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
private:  // Data
hgs
parents:
diff changeset
   158
	// Parser CallBacks
hgs
parents:
diff changeset
   159
	MXMLContentHandler* iContentHandler;
hgs
parents:
diff changeset
   160
	// Binary call backs
hgs
parents:
diff changeset
   161
	MWBXMLContentHandler* iBinaryContentHandler;
hgs
parents:
diff changeset
   162
	// Current attribute list
hgs
parents:
diff changeset
   163
	CXMLAttributes* iAttributes;
hgs
parents:
diff changeset
   164
	// Keeps track of elements (needed for binary parsing)
hgs
parents:
diff changeset
   165
	CDesCArraySeg* iDescElements;
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
	// Keep track off namespace extensions and URIs.
hgs
parents:
diff changeset
   168
	CDesCArraySeg* iNSextensions;
hgs
parents:
diff changeset
   169
	CDesCArraySeg* iURIs;
hgs
parents:
diff changeset
   170
};
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
#endif      // __CXMLOBSERVER_H   
hgs
parents:
diff changeset
   173
            
hgs
parents:
diff changeset
   174
// End of File