blob: b754c0054f0f626f8a3dc089b2d64a2016480d8c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(XALAN_XPATHCAPI_HEADER_GUARD_1357924680)
#define XALAN_XPATHCAPI_HEADER_GUARD_1357924680
#if defined(_MSC_VER)
#if defined(XALAN_BUILD_DLL)
#define XALAN_XPATHCAPI_EXPORT __declspec(dllexport)
#define XALAN_XPATHCAPI_EXPORT_FUNCTION(T) T __declspec(dllexport)
#else
#define XALAN_XPATHCAPI_EXPORT __declspec(dllimport)
#define XALAN_XPATHCAPI_EXPORT_FUNCTION(T) T __declspec(dllimport)
#endif
#else
#define XALAN_XPATHCAPI_EXPORT
#define XALAN_XPATHCAPI_EXPORT_FUNCTION(T) T
#endif
/**
* This is a simple C interface for the class XPathEvaluator. It's
* the user's responsibility to call XalanXPathAPIInitialize() before making
* any other API calls, and to call XalanXPathAPITerminate() when finished
* with the API.
*/
#if defined(__cplusplus)
extern "C"
{
#endif
#define XALAN_XPATH_API_SUCCESS 0
#define XALAN_XPATH_API_ERROR_ALREADY_INITIALIZED 1
#define XALAN_XPATH_API_ERROR_ALREADY_TERMINATED 2
#define XALAN_XPATH_API_ERROR_INITIALIZATION_FAILED 3
#define XALAN_XPATH_API_ERROR_TERMINATION_FAILED 4
#define XALAN_XPATH_API_ERROR_NOT_INITIALIZED 5
#define XALAN_XPATH_API_ERROR_CANNOT_REINITIALIZE 6
#define XALAN_XPATH_API_ERROR_INVALID_PARAMETER 7
#define XALAN_XPATH_API_ERROR_INVALID_EXPRESSION 8
#define XALAN_XPATH_API_ERROR_BAD_XML 9
#define XALAN_XPATH_API_ERROR_UNSUPPORTED_ENCODING 10
#define XALAN_XPATH_API_ERROR_TRANSCODING 11
#define XALAN_XPATH_API_ERROR_INVALID_XPATH 12
#define XALAN_XPATH_API_ERROR_UNKNOWN 13
/**
* Handle used to store the address of XalanTransformer instance.
*/
typedef void* XalanXPathEvaluatorHandle;
/**
* Handle used to store the address of compiled XPath instance.
*/
typedef void* XalanXPathHandle;
#if defined(OS390)
#pragma export(XalanXPathAPIInitialize)
#pragma export(XalanXPathAPITerminate)
#pragma export(XalanCreateXPathEvaluator)
#pragma export(XalanDestroyXPathEvaluator)
#pragma export(XalanCreateXPath)
#pragma export(XalanDestroyXPath)
#pragma export(XalanEvaluateXPathAsBoolean)
#pragma export(XalanEvaluateXPathExpressionAsBoolean)
#endif
/**
* Initialize Xerces and the XPath API.
*
* Should be called only once per process before making
* any other API calls.
*
* @return 0 for success, or a non-zero error code upon failure
*/
XALAN_XPATHCAPI_EXPORT_FUNCTION(int)
XalanXPathAPIInitialize();
/**
* Terminate Xerces and the XPath API.
*
* Should be called only once per process after deleting all
* instances of XalanXPathEvaluator. Once a process has called
* this function, it cannot use the API for the remaining
* lifetime of the process.
*
* @return 0 for success, or a non-zero error code upon failure
*/
XALAN_XPATHCAPI_EXPORT_FUNCTION(int)
XalanXPathAPITerminate();
/**
* Create a XalanXPathEvaluator instance.
*
* @param theXalanHandle A pointer to the handle for the new instance.
* @return 0 for success, or a non-zero error code upon failure
*/
XALAN_XPATHCAPI_EXPORT_FUNCTION(int)
XalanCreateXPathEvaluator(XalanXPathEvaluatorHandle* theHandle);
/**
* Destroy a XalanXPathEvaluator instance.
*
* @param theXalanHandle The handle of the instance to destroy.
* @return 0 for success, or a non-zero error code upon failure
*/
XALAN_XPATHCAPI_EXPORT_FUNCTION(int)
XalanDestroyXPathEvaluator(XalanXPathEvaluatorHandle theXalanHandle);
/**
* Creates a compiled XPath instance.
*
* @param theXalanHandle The handle of XalanXPathEvaluatorHandle instance.
* @param theXPathExpression The expression to compile
* @param theXPathExpressionEncoding The encoding of the expression. If NULL or an empty string, the local code page is assumed.
* @param theXPathHandle A pointer to the handle for the new instance
* @return 0 for success, or a non-zero error code upon failure
*/
XALAN_XPATHCAPI_EXPORT_FUNCTION(int)
XalanCreateXPath(
XalanXPathEvaluatorHandle theXalanHandle,
const char* theXPathExpression,
const char* theXPathExpressionEncoding,
XalanXPathHandle* theXPathHandle);
/**
* Destroys a compiled XPath instance.
*
* @param theXalanHandle The handle of XalanXPathEvaluatorHandle instance.
* @param theXPathHandle The handle of XPath instance
* @return 0 for success, or a non-zero error code upon failure
*/
XALAN_XPATHCAPI_EXPORT_FUNCTION(int)
XalanDestroyXPath(
XalanXPathEvaluatorHandle theXalanHandle,
XalanXPathHandle theXPathHandle);
/**
* Evaluates a compiled XPath instance.
*
* @param theXalanHandle The handle of XalanXPathEvaluatorHandle instance.
* @param theXPathHandle The pointer to handle for instance
* @param theXML The XML document to use for evaluating the XPath expression
* @param theResult A pointer to an int to receive the result.
* @return 0 for success, or a non-zero error code upon failure
*/
XALAN_XPATHCAPI_EXPORT_FUNCTION(int)
XalanEvaluateXPathAsBoolean(
XalanXPathEvaluatorHandle theXalanHandle,
XalanXPathHandle theXPathHandle,
const char* theXML,
int* theResult);
/**
* Evaluates an XPath expression
*
* @param theXalanHandle The handle of XalanXPathEvaluatorHandle instance.
* @param theXPathExpression The expression to evaluate
* @param theXPathExpressionEncoding The encoding of the expression. If NULL or an empty string, the local code page is assumed.
* @param theXML The XML document to use for evaluating the XPath expression
* @param theResult A pointer to an int to receive the result.
* @return 0 for success, or a non-zero error code upon failure
*/
XALAN_XPATHCAPI_EXPORT_FUNCTION(int)
XalanEvaluateXPathExpressionAsBoolean(
XalanXPathEvaluatorHandle theXalanHandle,
const char* theXPathExpression,
const char* theXPathExpressionEncoding,
const char* theXML,
int* theResult);
#if defined(__cplusplus)
}
#endif
#endif