epoc32/include/xml/dom/xmlengxpathconfiguration.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     2
// All rights reserved.
williamr@4
     3
// This component and the accompanying materials are made available
williamr@4
     4
// under the terms of "Eclipse Public License v1.0"
williamr@4
     5
// which accompanies this distribution, and is available
williamr@4
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     7
//
williamr@4
     8
// Initial Contributors:
williamr@4
     9
// Nokia Corporation - initial contribution.
williamr@4
    10
//
williamr@4
    11
// Contributors:
williamr@4
    12
//
williamr@4
    13
// Description:
williamr@4
    14
// XPath configuraion functions
williamr@4
    15
//
williamr@4
    16
williamr@4
    17
williamr@4
    18
williamr@4
    19
/**
williamr@4
    20
 @file
williamr@4
    21
 @publishedAll
williamr@4
    22
 @released
williamr@4
    23
*/
williamr@4
    24
#ifndef XMLENGXPATHCONFIGURATION_H
williamr@4
    25
#define XMLENGXPATHCONFIGURATION_H
williamr@4
    26
williamr@4
    27
#include <xml/dom/xmlengxpathextensionfunction.h>
williamr@4
    28
williamr@4
    29
/**
williamr@4
    30
This class holds a name, a namespace URI and a pointer to a XPath extension
williamr@4
    31
function (either native or defined via MXmlEngXPathExtensionFunction interface).
williamr@4
    32
williamr@4
    33
@see XmlEngXPathConfiguration
williamr@4
    34
@see MXmlEngXPathExtensionFunction
williamr@4
    35
*/
williamr@4
    36
class TXmlEngExtensionFunctionDescriptor
williamr@4
    37
    {
williamr@4
    38
public:
williamr@4
    39
	/** Default constructor */
williamr@4
    40
	IMPORT_C TXmlEngExtensionFunctionDescriptor();
williamr@4
    41
williamr@4
    42
public:
williamr@4
    43
	/** Extension function (Pointer to MXmlEngXPathExtensionFunction) */
williamr@4
    44
    void* iFunc;
williamr@4
    45
	/** Function name */
williamr@4
    46
    const char* iName;
williamr@4
    47
	/** Second name */
williamr@4
    48
    const char* iNamespaceUri;     
williamr@4
    49
	/** Reserved */
williamr@4
    50
	TInt iReserved;
williamr@4
    51
    };
williamr@4
    52
williamr@4
    53
/**
williamr@4
    54
This object is used to support extension functions used within the XPath library.
williamr@4
    55
Extension functions may be added or removed.  This object can also determine whether
williamr@4
    56
an extension function is supported.
williamr@4
    57
williamr@4
    58
Extension functions are stored in a TXmlEngExtensionFunctionDescriptor object which
williamr@4
    59
holds the extension function (a MXmlEngXPathExtensionFunction instance), the
williamr@4
    60
function name and the function namespace.  An extension function can be added
williamr@4
    61
to the library using XmlEngXPathConfiguration::AddExtensionFunctionL().
williamr@4
    62
williamr@4
    63
When an extension function is to be evaluated,
williamr@4
    64
MXmlEngXPathExtensionFunction::Evaluate() is called with a
williamr@4
    65
MXmlEngXPathEvaluationContext instance which holds the function arguments and
williamr@4
    66
evaluation result.
williamr@4
    67
williamr@4
    68
@see MXmlEngXPathExtensionFunction
williamr@4
    69
@see MXmlEngXPathEvaluationContext
williamr@4
    70
@see TXmlEngExtensionFunctionDescriptor
williamr@4
    71
*/
williamr@4
    72
class XmlEngXPathConfiguration
williamr@4
    73
    {
williamr@4
    74
public:
williamr@4
    75
    /** 
williamr@4
    76
	Unused 
williamr@4
    77
	@internalComponent
williamr@4
    78
	*/
williamr@4
    79
    IMPORT_C static void Unused_Func1(TBool aEnable);
williamr@4
    80
williamr@4
    81
    /**
williamr@4
    82
    Disables support of any previously registered extension functions
williamr@4
    83
    and switches to support only the XPath Function Library.
williamr@4
    84
	@leave KErrNoMemory Memory allocation failure
williamr@4
    85
    */
williamr@4
    86
    IMPORT_C static void ResetExtensionFunctionsL();
williamr@4
    87
williamr@4
    88
    /**
williamr@4
    89
    Check if XPath extension function is supported.
williamr@4
    90
    
williamr@4
    91
    @param aFunc Function name
williamr@4
    92
    @param aNsUri Function namespace URI
williamr@4
    93
    @return ETrue if supported, EFalse otherwise
williamr@4
    94
	@leave - One of the system-wide error codes
williamr@4
    95
    */
williamr@4
    96
    IMPORT_C static TBool IsFunctionSupportedL(const TDesC8& aFunc, const TDesC8& aNsUri);
williamr@4
    97
williamr@4
    98
    /**
williamr@4
    99
    Registers an extension function at the global scope.
williamr@4
   100
williamr@4
   101
    @param aFuncDes Function descriptor.
williamr@4
   102
	@leave KXmlEngErrWrongUseOfAPI Error initializing XPath context
williamr@4
   103
	@leave KXmlEngErrXPathResult Error adding function 
williamr@4
   104
	@leave - One of the system-wide error codes
williamr@4
   105
    */
williamr@4
   106
    IMPORT_C static void AddExtensionFunctionL(const TXmlEngExtensionFunctionDescriptor& aFuncDes);    
williamr@4
   107
williamr@4
   108
    /**
williamr@4
   109
    Registers a set of extension functions at the global scope.
williamr@4
   110
    
williamr@4
   111
    @param aFuncVector Vector with function descriptors.  Ownership is not transferred.
williamr@4
   112
	@param aSize The size of the vector
williamr@4
   113
	@leave KXmlEngErrWrongUseOfAPI Error initializing XPath context
williamr@4
   114
	@leave KXmlEngErrXPathResult Error adding function 
williamr@4
   115
	@leave - One of the system-wide error codes
williamr@4
   116
    */
williamr@4
   117
    IMPORT_C static void AddExtensionFunctionVectorL (const RArray<TXmlEngExtensionFunctionDescriptor>& aFuncVector, TUint aSize);    
williamr@4
   118
williamr@4
   119
    /**
williamr@4
   120
    Registers a native extension function at the global scope.
williamr@4
   121
williamr@4
   122
    @param aNativeFuncDes Function descriptor.
williamr@4
   123
	@leave KXmlEngErrWrongUseOfAPI Error initializing XPath context
williamr@4
   124
	@leave KXmlEngErrXPathResult Error adding function 
williamr@4
   125
	@leave - One of the system-wide error codes
williamr@4
   126
    */
williamr@4
   127
    IMPORT_C static void AddNativeExtensionFunctionL(const TXmlEngExtensionFunctionDescriptor& aNativeFuncDes);    
williamr@4
   128
williamr@4
   129
    /**
williamr@4
   130
    Registers a set of native extension functions at the global scope.
williamr@4
   131
williamr@4
   132
    @param aNativeFuncVector Function descriptor.
williamr@4
   133
	@param aSize The size of the vector
williamr@4
   134
	@leave KXmlEngErrWrongUseOfAPI Error initializing XPath context
williamr@4
   135
	@leave KXmlEngErrXPathResult Error adding function 
williamr@4
   136
	@leave - One of the system-wide error codes
williamr@4
   137
    */
williamr@4
   138
    IMPORT_C static void AddNativeExtensionFunctionVectorL(const RArray<TXmlEngExtensionFunctionDescriptor>& aNativeFuncVector, TUint aSize);    
williamr@4
   139
williamr@4
   140
    /**
williamr@4
   141
	Deregisters an extension function.  No error is generated if the extension
williamr@4
   142
	function is not found.
williamr@4
   143
williamr@4
   144
    @param aFuncDes Function descriptor.
williamr@4
   145
    */
williamr@4
   146
    IMPORT_C static void RemoveExtensionFunction(const TXmlEngExtensionFunctionDescriptor& aFuncDes);    
williamr@4
   147
williamr@4
   148
    /**
williamr@4
   149
	Deregisters a set of extension functions.  No error is generated if an
williamr@4
   150
	extension function in the vector is not found.
williamr@4
   151
williamr@4
   152
    @param aFuncVector Vector with function descriptors.
williamr@4
   153
	@param aSize The size of the vector
williamr@4
   154
    */
williamr@4
   155
    IMPORT_C static void RemoveExtensionFunctionVector(const RArray<TXmlEngExtensionFunctionDescriptor>& aFuncVector, TUint aSize);    
williamr@4
   156
    };
williamr@4
   157
williamr@4
   158
#endif /* XMLENGXPATHCONFIGURATION_H */
williamr@4
   159