Apama  9.10.0.4.289795
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Macros | Typedefs | Enumerations
correlator_plugin.h File Reference

correlator_plugin.h More...

#include <AP_Types.h>
#include <AP_Platform.h>
#include <AP_PluginCommon.h>
#include <stdio.h>

Go to the source code of this file.

Classes

struct  AP_PluginCorrelatorInterface_Functions
 CorrelatorInterface function API. More...
 
struct  AP_PluginCorrelatorInterface_API
 CorrelatorInterface. More...
 
struct  AP_PluginContext_Functions
 PluginContext function API. More...
 
struct  AP_PluginContext_API
 PluginContext. More...
 
struct  AP_PluginChunk_Functions
 PluginChunk function API. More...
 
struct  AP_PluginChunk_Callbacks
 PluginChunk callback API. More...
 
struct  AP_PluginChunk_API
 PluginChunk. More...
 
struct  AP_PluginType_Functions
 AP_Type function API. More...
 
struct  AP_PluginType_API
 AP_Type. More...
 
struct  AP_PluginTypeList_Functions
 AP_TypeList function API. More...
 
struct  AP_PluginTypeList_API
 AP_TypeList. More...
 
struct  AP_PluginFunction
 Plugin function descriptor. More...
 

Macros

#define AP_CORRELATOR_PLUGIN_VERSION   0x00090000
 Plugin API version. More...
 

Typedefs

typedef void(AP_PLUGIN_CALL * AP_PluginFunctionPtr )(const AP_PluginContext *ctx, const AP_PluginTypeList *args, AP_PluginType *rval, AP_TypeDiscriminator rtype)
 Type of a plugin function. More...
 
typedef AP_PLUGIN_DLL_SYM
AP_ErrorCode(AP_PLUGIN_CALL * 
AP_PluginInitFunctionPtr )(const AP_PluginContext *ctx, AP_uint32 *version, AP_uint32 *nFunctions, AP_PluginFunction **functions)
 Type of a plugin library initialisation function. More...
 
typedef AP_PLUGIN_DLL_SYM
AP_ErrorCode(AP_PLUGIN_CALL * 
AP_PluginShutdownFunctionPtr )(const AP_PluginContext *ctx)
 Pointer to a plugin library shutdown function. More...
 
typedef AP_PLUGIN_DLL_SYM
AP_ErrorCode(AP_PLUGIN_CALL * 
AP_PluginVersionFunctionPtr )(const AP_PluginContext *ctx, AP_uint32 *version)
 Type of a plugin library version function. More...
 
typedef AP_PLUGIN_DLL_SYM
AP_Capabilities(AP_PLUGIN_CALL * 
AP_PluginGetCapabilitiesFunctionPtr )(const AP_PluginContext *ctx)
 Type of a plugin capability function. More...
 
typedef AP_PLUGIN_DLL_SYM AP_ErrorCode (AP_PLUGIN_CALL *AP_PluginThreadEndedFunctionPtr)(const AP_PluginContext *ctx)
 Type of a plugin library thread ended function. More...
 

Enumerations

enum  AP_CorrelatorPluginExceptionType { AP_PLUGIN_EXCEPTION, AP_PLUGIN_TYPE_EXCEPTION, AP_PLUGIN_UNIMPLEMENTED_EXCEPTION, AP_PLUGIN_BOUNDS_EXCEPTION }
 Typed differentiator for different exceptions in the plugin interface. More...
 

Detailed Description

correlator_plugin.h

Apama Plugin C API definitions. Used by plugin libraries and the plugin support code within the Engine itself.

$Copyright(c) 2002, 2004-2006, 2008-2009, 2011-2013 Progress Software Corporation (PSC). All rights reserved.$ $Copyright (c) 2013, 2016 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or their licensors.$ Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Software AG

Id
correlator_plugin.h 274995 2016-02-08 17:08:39Z shd

Contains the C API for writing EPL plugins.

IMPORTANT NOTE:

This interface is based on the C++ API defined by correlator_plugin.hpp

The C++ API is more robust and gives higher performance. Wherever possible, it should be used instead of this C API.

The C++ header file also contains the documentation for these functions.

Macro Definition Documentation

#define AP_CORRELATOR_PLUGIN_VERSION   0x00090000

Plugin API version.

The upper 16 bits identify the major release of the API; the lower 16 bits indicate minor versions within that release. No changes that break backward binary compatibility will be made within a given major release of the API. That is, minor releases may add functionality and fix bugs, but will not change or remove any documented behaviour. AP_PluginCommon.h provides two _VERSION_MASK symbols for convenience in performing fine-grained version checks.

Typedef Documentation

typedef AP_PLUGIN_DLL_SYM AP_ErrorCode(AP_PLUGIN_CALL *AP_PluginThreadEndedFunctionPtr)(const AP_PluginContext *ctx)

Type of a plugin library thread ended function.

The function is called by the correlator when a thread ends. The function is optional, but not implementing it may lead to leaks as the plugin will not be told if a thread has ended.

This function pointer is not guaranteed to be called before AP_ShutdownFunctionPtr Any plugin using this will have to free resources in AP_ShutdownFunctionPtr as if AP_ThreadEndedFunctionPtr may have not been called.

Parameters
ctxExecution context for the function call.
Returns
An AP_ErrorCode indicating the success or otherwise of the function call.
typedef void(AP_PLUGIN_CALL* AP_PluginFunctionPtr)(const AP_PluginContext *ctx, const AP_PluginTypeList *args, AP_PluginType *rval, AP_TypeDiscriminator rtype)

Type of a plugin function.

All functions exported by a plugin library must follow this interface.

Parameters
ctxExecution context for this invocation of the function.
argsFunction parameters, passed by reference.
rvalFunction return value, to be filled in by plugin.
typedef AP_PLUGIN_DLL_SYM AP_Capabilities(AP_PLUGIN_CALL* AP_PluginGetCapabilitiesFunctionPtr)(const AP_PluginContext *ctx)

Type of a plugin capability function.

Each plugin must export a single function with this signature, named using the AP_PLUGIN_GET_CAPABILITIES_FUNCTION_NAME macro, with "C" linkage. The get capabilities function is called after the version function and before the library initialisation function to determine the capabilities/ features of the plugin API supported by the library without triggering any side-effects that the initialisation function might have. If the function is not present, the plugin API will assume that the library conforms to an earlier version of the API and proceed accordingly.

Parameters
ctxExecution context for the function call.
Returns
An AP_Capabilities indicating the capabilities/ properties of the plugin (multiple values are bitwise-OR'd together)
typedef AP_PLUGIN_DLL_SYM AP_ErrorCode(AP_PLUGIN_CALL* AP_PluginInitFunctionPtr)(const AP_PluginContext *ctx, AP_uint32 *version, AP_uint32 *nFunctions, AP_PluginFunction **functions)

Type of a plugin library initialisation function.

Each plugin must export a single function with this signature, named using the AP_INIT_FUNCTION_NAME macro, with "C" linkage. The initialisation function will be called immediately after the library is loaded by the Engine.

Parameters
ctxExecution context for the function call.
versionActive plugin API version. The plugin should verify it is compatible with this version (and return AP_VERSION_MISMATCH_ERROR if not) and update version to indicate the API version the plugin was compiled against.
nFunctionsThe plugin should set this to the number of functions it exports.
functionsThe plugin should set this to the address of an array of AP_Functions structures, of length nFunctions, describing the functions exported by the plugin. This data will be read and copied by the plugin API.
Returns
An AP_ErrorCode indicating the success or otherwise of the library initialisation.
typedef AP_PLUGIN_DLL_SYM AP_ErrorCode(AP_PLUGIN_CALL* AP_PluginShutdownFunctionPtr)(const AP_PluginContext *ctx)

Pointer to a plugin library shutdown function.

Each plugin must export a single function with this signature, named using the AP_SHUTDOWN_FUNCTION_NAME macro, with "C" linkage. The shutdown function will be called immediately before the library is unloaded by the Engine, either when the last import of the plugin is deleted or the correlator is shut down.

typedef AP_PLUGIN_DLL_SYM AP_ErrorCode(AP_PLUGIN_CALL* AP_PluginVersionFunctionPtr)(const AP_PluginContext *ctx, AP_uint32 *version)

Type of a plugin library version function.

Each plugin must export a single function with this signature, named using the AP_LIBRARY_VERSION_FUNCTION_NAME macro, with "C" linkage. The version function is called before the library initialisation function to determine the version of the plugin API supported by the library without triggering any side-effects that the initialisation function might have. If the function is not present, the plugin API will assume that the library conforms to an earlier version of the API and proceed accordingly.

Parameters
ctxExecution context for the function call.
versionThe plugin should fill this in with the version of the API it was compiled against.
Returns
An AP_ErrorCode indicating the success or otherwise of the function call.

Enumeration Type Documentation

Typed differentiator for different exceptions in the plugin interface.

Enumerator
AP_PLUGIN_EXCEPTION 

Generic exception.

AP_PLUGIN_TYPE_EXCEPTION 

Incorrect type.

AP_PLUGIN_UNIMPLEMENTED_EXCEPTION 

Unimplemented method.

AP_PLUGIN_BOUNDS_EXCEPTION 

Out of bands.