Apama  9.10.0.4.289795
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
correlator_plugin.h
Go to the documentation of this file.
1 
29 #ifndef CORRELATOR_PLUGIN_H
30 #define CORRELATOR_PLUGIN_H
31 
32 
33 #include <AP_Types.h>
34 #include <AP_Platform.h>
35 #include <AP_PluginCommon.h>
36 #include <stdio.h>
37 
38 
48 /* Version history:
49  * 1.0 First version released in Apama Engine 2.0.3
50  * Win32 support added in Apama Engine 2.0.4
51  * 2.0 Add serialisation support for Apama Engine 2.1 release
52  * Unfortunately this breaks back compatibility of chunks
53  * 3.0 First C-compatible version of the API, in Apama Engine 2.1.2
54  * Note that the 2.0 C++ API still exists in this release; the
55  * 2.x (C++) and 3.x (C) versions will be maintained in parallel.
56  * 4.0 Major version number change to force users to re-compile for VS7.1
57  * and/or check the correct free implementation is used (result of
58  * InputStream's getString must be freed with AP_Context's char8free)
59  * Also adds support for the getCorrelator() context function and the
60  * AP_PluginCorrelatorInterface type that can be used to send events
61  * back into the correlator. This brings the C++ and C plugin APIs
62  * back into sync - future changes should be made to both APIs.
63  * 5.0 Add getContextId and sendEventTo. Also added the optional
64  * GET_CAPABILITIES and THREAD_ENDED functions that the plugin may
65  * provide. Improved some function prototypes.
66  * 6.0 Improved the interface's const-correctness. Increased the
67  * performance of AP_TypeList, made AP_Chunk construction and
68  * destruction cheaper, especially in a multi-threaded
69  * environment. Added AP_Type::visitSequenceElements.
70  * 7.0 Remove serialisation support for Apama 5.0 release
71  * 8.0 No changes here, but to keep it in sync with the .hpp
72  * 9.0 Add support for modifying sequence lengths and returning sequences
73  */
74 #define AP_CORRELATOR_PLUGIN_VERSION 0x00090000
75 
77 typedef enum {
82  AP_PLUGIN_SERIALISATION_EXCEPTION
84 
85 
86 
87 #ifdef __cplusplus
88 extern "C" {
89 #endif /* __cplusplus */
90 
92  struct AP_PluginContext_API;
93  struct AP_PluginType_API;
94  struct AP_PluginChunk_API;
95  struct AP_PluginTypeList_API;
96 
98 
99 #ifdef __cplusplus
100  struct AP_PluginCorrelatorInterface_Stubs;
101  struct AP_PluginContext_Stubs;
102  struct AP_PluginType_Stubs;
103  struct AP_PluginChunk_Stubs;
104  struct AP_PluginTypeList_Stubs;
105 
106  typedef struct AP_PluginCorrelatorInterface_Stubs AP_PluginCorrelatorInterface;
107  typedef struct AP_PluginContext_Stubs AP_PluginContext;
108  typedef struct AP_PluginType_Stubs AP_PluginType;
109  typedef struct AP_PluginChunk_Stubs AP_PluginChunk;
110  typedef struct AP_PluginTypeList_Stubs AP_PluginTypeList;
111 #else
112  typedef struct AP_PluginCorrelatorInterface_API AP_PluginCorrelatorInterface;
113  typedef struct AP_PluginContext_API AP_PluginContext;
114  typedef struct AP_PluginType_API AP_PluginType;
115  typedef struct AP_PluginChunk_API AP_PluginChunk;
116  typedef struct AP_PluginTypeList_API AP_PluginTypeList;
117 #endif /* __cplusplus */
118 
123  {
131  void (AP_PLUGIN_CALL* sendEvent)(AP_PluginCorrelatorInterface* _interface, const char* event);
142  void (AP_PLUGIN_CALL* sendEventTo)(AP_PluginCorrelatorInterface* _interface, const char* event, AP_uint64 targetCtx, AP_uint64 sourceCtx);
143  };
144 
149  {
150  void* reserved;
153  };
154 
155  struct AP_PluginCorrelatorInterface_Stubs {
157 
158 #ifdef __cplusplus
159  void sendEvent(char* event) {
160  api.functions->sendEvent(this, event);
161  }
162 
163  void sendEvent(char* event, AP_uint64 targetCtx, AP_uint64 sourceCtx) {
164  api.functions->sendEventTo(this, event, targetCtx, sourceCtx);
165  }
166 #endif /* __ cplusplus */
167  };
168 
173  {
175  AP_uint32 (AP_PLUGIN_CALL* version)(const AP_PluginContext* ctx);
182  AP_PluginChunk* (AP_PLUGIN_CALL* createChunk)(const AP_PluginContext* ctx, const struct AP_PluginChunk_Callbacks* callbacks, void* userData);
188  void (AP_PLUGIN_CALL* deleteChunk)(const AP_PluginContext* ctx, AP_PluginChunk* chunk);
190  AP_bool (AP_PLUGIN_CALL* checkException)(const AP_PluginContext* ctx);
192  AP_CorrelatorPluginExceptionType (AP_PLUGIN_CALL* getExceptionType)(const AP_PluginContext* ctx);
194  const AP_char8* (AP_PLUGIN_CALL* getExceptionMessage)(const AP_PluginContext* ctx);
196  void (AP_PLUGIN_CALL* clearException)(const AP_PluginContext* ctx);
200  AP_PluginCorrelatorInterface* (AP_PLUGIN_CALL* getCorrelator)(const AP_PluginContext* ctx);
205  void (AP_PLUGIN_CALL* char8free)(AP_char8* ptr);
210  AP_uint64 (AP_PLUGIN_CALL* getContextId)(const AP_PluginContext* ctx);
211  };
212 
217  {
218  const void* reserved;
221  };
222 
223  struct AP_PluginContext_Stubs {
224  struct AP_PluginContext_API api;
225 
226 #ifdef __cplusplus
227  AP_uint32 version() const {
228  return api.functions->version(this);
229  }
230 
231  AP_PluginChunk* createChunk(const struct AP_PluginChunk_Callbacks* callbacks, void* userData) const {
232  return api.functions->createChunk(this, callbacks, userData);
233  }
234 
235  void deleteChunk(AP_PluginChunk* chunk) const {
236  api.functions->deleteChunk(this, chunk);
237  }
238 
239  AP_bool checkException() const {
240  return api.functions->checkException(this);
241  }
242 
243  AP_CorrelatorPluginExceptionType getExceptionType() const {
244  return api.functions->getExceptionType(this);
245  }
246 
247  const AP_char8* getExceptionMessage() const {
248  return api.functions->getExceptionMessage(this);
249  }
250 
251  void clearException() const {
252  api.functions->clearException(this);
253  }
254 
255  const AP_PluginCorrelatorInterface* getCorrelator() const{
256  return api.functions->getCorrelator(this);
257  }
258 
259  void char8free(AP_char8* ptr) const{
260  api.functions->char8free(ptr);
261  }
262 
263  AP_uint64 getContextId() const{
264  return api.functions->getContextId(this);
265  }
266 #endif /* __ cplusplus */
267  };
268 
269 
272  {
274  void* (AP_PLUGIN_CALL* getUserData)(const AP_PluginChunk* chunk);
280  void (AP_PLUGIN_CALL* setUserData)(AP_PluginChunk* chunk, void* userData);
281  };
282 
288  {
290  void (AP_PLUGIN_CALL* freeUserData)(AP_PluginChunk* chunk);
292  void* (AP_PLUGIN_CALL* copyUserData)(const AP_PluginChunk* chunk);
293  };
294 
299  {
300  void* reserved;
305  };
306 
307  struct AP_PluginChunk_Stubs {
308  struct AP_PluginChunk_API api;
309 
310 #ifdef __cplusplus
311  void* getUserData() const {
312  return api.functions->getUserData(this);
313  }
314 
315  void setUserData(void* userData) {
316  api.functions->setUserData(this, userData);
317  }
318 
319  void freeUserData() {
320  api.callbacks->freeUserData(this);
321  }
322 
323  void* copyUserData() {
324  return api.callbacks->copyUserData(this);
325  }
326 #endif /* __cplusplus */
327  };
328 
329 
330 
333  {
335  AP_TypeDiscriminator (AP_PLUGIN_CALL* getDiscriminator)(const AP_PluginType* obj);
336 
338  AP_PluginChunk* (AP_PLUGIN_CALL* getChunkValue)(const AP_PluginType* obj);
347  void (AP_PLUGIN_CALL* setChunkValue)(const AP_PluginType* obj, AP_PluginChunk* val);
348 
350  AP_int64 (AP_PLUGIN_CALL* getIntegerValue)(const AP_PluginType* obj);
352  void (AP_PLUGIN_CALL* setIntegerValue)(AP_PluginType* obj, AP_int64 val);
353 
355  AP_float64 (AP_PLUGIN_CALL* getFloatValue)(const AP_PluginType* obj);
357  void (AP_PLUGIN_CALL* setFloatValue)(AP_PluginType* obj, AP_float64 val);
358 
360  AP_bool (AP_PLUGIN_CALL* getBooleanValue)(const AP_PluginType* obj);
362  void (AP_PLUGIN_CALL* setBooleanValue)(AP_PluginType* obj, AP_bool val);
363 
365  const AP_char8* (AP_PLUGIN_CALL* getStringValue)(const AP_PluginType* obj);
370  void (AP_PLUGIN_CALL* setStringValue)(AP_PluginType* obj, const AP_char8* val);
371 
373  AP_uint32 (AP_PLUGIN_CALL* getSequenceLength)(const AP_PluginType* obj);
381  void (AP_PLUGIN_CALL* setSequenceLength)(const AP_PluginType* obj, AP_uint32 len);
383  AP_TypeDiscriminator (AP_PLUGIN_CALL* getSequenceType)(const AP_PluginType* obj);
392  void (AP_PLUGIN_CALL* createSequence)(const AP_PluginType *obj, AP_TypeDiscriminator inner);
393 
399  AP_PluginType* (AP_PLUGIN_CALL* getSequenceElement)(const AP_PluginType* obj, AP_uint32 index);
400 
402  void (AP_PLUGIN_CALL *copyFrom)(const AP_PluginType *obj, const AP_PluginType *other);
403 
409  AP_PluginType* const * (AP_PLUGIN_CALL* getSequenceElements)(const AP_PluginType* obj, AP_uint32 start, AP_uint32 length);
419  void (AP_PLUGIN_CALL* releaseSequenceElements)(const AP_PluginType* obj);
420 
431  AP_PluginChunk* const * (AP_PLUGIN_CALL* getChunkSequenceElements)(const AP_PluginType* obj, AP_uint32 start, AP_uint32 length);
440  void (AP_PLUGIN_CALL* releaseChunkSequenceElements)(const AP_PluginType* obj);
441 
447  AP_int64* (AP_PLUGIN_CALL* getIntegerSequenceElements)(const AP_PluginType* obj, AP_uint32 start, AP_uint32 length);
457  void (AP_PLUGIN_CALL* releaseIntegerSequenceElements)(const AP_PluginType* obj);
458 
464  AP_float64* (AP_PLUGIN_CALL* getFloatSequenceElements)(const AP_PluginType* obj, AP_uint32 start, AP_uint32 length);
474  void (AP_PLUGIN_CALL* releaseFloatSequenceElements)(const AP_PluginType* obj);
475 
481  AP_bool* (AP_PLUGIN_CALL* getBooleanSequenceElements)(const AP_PluginType* obj, AP_uint32 start, AP_uint32 length);
491  void (AP_PLUGIN_CALL* releaseBooleanSequenceElements)(const AP_PluginType* obj);
492 
500  const AP_char8** (AP_PLUGIN_CALL* getStringSequenceElements)(const AP_PluginType* obj, AP_uint32 start, AP_uint32 length);
518  void (AP_PLUGIN_CALL* releaseStringSequenceElements)(const AP_PluginType* obj);
519  };
520 
525  {
526  void* reserved;
529  };
530 
531  struct AP_PluginType_Stubs {
532  struct AP_PluginType_API api;
533 
534 #ifdef __cplusplus
535  AP_TypeDiscriminator getDiscriminator() const {
536  return api.functions->getDiscriminator(this);
537  }
538 
539  AP_PluginChunk* getChunkValue() const {
540  return api.functions->getChunkValue(this);
541  }
542 
543  void setChunkValue(AP_PluginChunk* val) const {
544  api.functions->setChunkValue(this, val);
545  }
546 
547  AP_int64 getIntegerValue() const {
548  return api.functions->getIntegerValue(this);
549  }
550 
551  void setIntegerValue(AP_int64 val) {
552  api.functions->setIntegerValue(this, val);
553  }
554 
555  AP_float64 getFloatValue() const {
556  return api.functions->getFloatValue(this);
557  }
558 
559  void setFloatValue(AP_float64 val) {
560  api.functions->setFloatValue(this, val);
561  }
562 
563  AP_bool getBooleanValue() const {
564  return api.functions->getBooleanValue(this);
565  }
566 
567  void setBooleanValue(AP_bool val) {
568  api.functions->setBooleanValue(this, val);
569  }
570 
571  const AP_char8* getStringValue() const {
572  return api.functions->getStringValue(this);
573  }
574 
575  void setStringValue(const AP_char8* val) {
576  api.functions->setStringValue(this, val);
577  }
578 
579  AP_uint32 getSequenceLength() const {
580  return api.functions->getSequenceLength(this);
581  }
582 
583  AP_TypeDiscriminator getSequenceType() const {
584  return api.functions->getSequenceType(this);
585  }
586 
587  AP_PluginType* getSequenceElement(AP_uint32 index) const {
588  return api.functions->getSequenceElement(this, index);
589  }
590 
591  void copyFrom(const AP_PluginType *other) {
592  return api.functions->copyFrom(this, other);
593  }
594 
595  AP_PluginType* const *getSequenceElements(AP_uint32 start = 0, AP_uint32 length = ~0U) const {
596  return api.functions->getSequenceElements(this, start, length);
597  }
598 
599  void releaseSequenceElements() const {
600  api.functions->releaseSequenceElements(this);
601  }
602 
603  AP_PluginChunk* const * getChunkSequenceElements(AP_uint32 start = 0, AP_uint32 length = ~0U) const {
604  return api.functions->getChunkSequenceElements(this, start, length);
605  }
606 
607  void releaseChunkSequenceElements() const {
608  api.functions->releaseChunkSequenceElements(this);
609  }
610 
611  AP_int64* getIntegerSequenceElements(AP_uint32 start = 0, AP_uint32 length = ~0U) const {
612  return api.functions->getIntegerSequenceElements(this, start, length);
613  }
614 
615  void releaseIntegerSequenceElements() const {
616  api.functions->releaseIntegerSequenceElements(this);
617  }
618 
619  AP_float64* getFloatSequenceElements(AP_uint32 start = 0, AP_uint32 length = ~0U) const {
620  return api.functions->getFloatSequenceElements(this, start, length);
621  }
622 
623  void releaseFloatSequenceElements() const {
624  api.functions->releaseFloatSequenceElements(this);
625  }
626 
627  AP_bool* getBooleanSequenceElements(AP_uint32 start = 0, AP_uint32 length = ~0U) const {
628  return api.functions->getBooleanSequenceElements(this, start, length);
629  }
630 
631  void releaseBooleanSequenceElements() const {
632  api.functions->releaseBooleanSequenceElements(this);
633  }
634 
635  const AP_char8** getStringSequenceElements(AP_uint32 start = 0, AP_uint32 length = ~0U) const {
636  return api.functions->getStringSequenceElements(this, start, length);
637  }
638 
639  void releaseStringSequenceElements() const {
640  api.functions->releaseStringSequenceElements(this);
641  }
642 #endif /* __cplusplus */
643  };
644 
645 
646 
651  {
653  AP_uint32 (AP_PLUGIN_CALL* getSize)(const AP_PluginTypeList* list);
655  AP_bool (AP_PLUGIN_CALL* isEmpty)(const AP_PluginTypeList* list);
657  const AP_PluginType* (AP_PLUGIN_CALL* getElement)(const AP_PluginTypeList* list, AP_uint32 index);
658  };
659 
664  {
665  void* reserved;
668  };
669 
670  struct AP_PluginTypeList_Stubs {
671  struct AP_PluginTypeList_API api;
672 
673 #ifdef __cplusplus
674  AP_uint32 getSize() const {
675  return api.functions->getSize(this);
676  }
677 
678  AP_bool isEmpty() const {
679  return api.functions->isEmpty(this);
680  }
681 
682  const AP_PluginType* getElement(AP_uint32 index) const {
683  return api.functions->getElement(this, index);
684  }
685 #endif /* __cplusplus */
686  };
687 
688 
697  typedef void (AP_PLUGIN_CALL* AP_PluginFunctionPtr)(const AP_PluginContext* ctx, const AP_PluginTypeList* args, AP_PluginType* rval, AP_TypeDiscriminator rtype);
698 
706  typedef struct
707  {
709  const AP_char8* name;
710 
713 
715  AP_uint32 nParams;
716 
718  const AP_char8** paramTypes;
719 
721  const AP_char8* returnType;
722 
724 
749  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);
750 
759  typedef AP_PLUGIN_DLL_SYM AP_ErrorCode (AP_PLUGIN_CALL* AP_PluginShutdownFunctionPtr)(const AP_PluginContext* ctx);
760 
779  typedef AP_PLUGIN_DLL_SYM AP_ErrorCode (AP_PLUGIN_CALL* AP_PluginVersionFunctionPtr)(const AP_PluginContext* ctx, AP_uint32* version);
780 
797  typedef AP_PLUGIN_DLL_SYM AP_Capabilities (AP_PLUGIN_CALL* AP_PluginGetCapabilitiesFunctionPtr)(const AP_PluginContext* ctx);
798 
814  typedef AP_PLUGIN_DLL_SYM AP_ErrorCode (AP_PLUGIN_CALL* AP_PluginThreadEndedFunctionPtr) (const AP_PluginContext* ctx);
815 
816 #ifdef __cplusplus
817 } /* extern "C" */
818 #endif /* __cplusplus */
819 
820 #endif /* CORRELATOR_PLUGIN_H */
AP_TypeList.
Definition: correlator_plugin.h:663
const AP_char8 *AP_PLUGIN_CALL * getExceptionMessage(const AP_PluginContext *ctx)
Returns the message of the most recent exception.
void *AP_PLUGIN_CALL * copyUserData(const AP_PluginChunk *chunk)
return a copy of the user data
AP_PluginCorrelatorInterface *AP_PLUGIN_CALL * getCorrelator(const AP_PluginContext *ctx)
Return the correlator implementation.
CorrelatorInterface.
Definition: correlator_plugin.h:148
AP_uint32(AP_PLUGIN_CALL *getSequenceLength)(const AP_PluginType *obj)
Get the number of elements in a sequence object.
AP_bool(AP_PLUGIN_CALL *checkException)(const AP_PluginContext *ctx)
Returns true if an exception has occurred since the last time that clearException was called...
AP_Capabilities
Plugin capabilities.
Definition: AP_PluginCommon.h:74
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.
Definition: correlator_plugin.h:697
CorrelatorInterface function API.
Definition: correlator_plugin.h:122
AP_TypeList function API.
Definition: correlator_plugin.h:650
const struct AP_PluginTypeList_Functions * functions
Pointer to function API.
Definition: correlator_plugin.h:667
AP_int64 *AP_PLUGIN_CALL * getIntegerSequenceElements(const AP_PluginType *obj, AP_uint32 start, AP_uint32 length)
Generate an array of integers encapsulating elements [start..start+length-1] of the sequence object...
AP_PluginType *const *AP_PLUGIN_CALL * getSequenceElements(const AP_PluginType *obj, AP_uint32 start, AP_uint32 length)
Generate an array of pointers to AP_Type objects, encapsulating elements [start..start+length-1] of t...
AP_PluginType *AP_PLUGIN_CALL * getSequenceElement(const AP_PluginType *obj, AP_uint32 index)
Get a pointer to a single sequence element.
Incorrect type.
Definition: correlator_plugin.h:79
Generic exception.
Definition: correlator_plugin.h:78
AP_uint32(AP_PLUGIN_CALL *getSize)(const AP_PluginTypeList *list)
Return the number of objects in the list.
const AP_char8 * returnType
Return type.
Definition: correlator_plugin.h:721
const AP_char8 *AP_PLUGIN_CALL * getStringValue(const AP_PluginType *obj)
Get the string value of the object.
AP_uint64(AP_PLUGIN_CALL *getContextId)(const AP_PluginContext *ctx)
Return the identifier of the EPL (parallelism) context associated with this plugin execution context...
const struct AP_PluginType_Functions * functions
Pointer to function API.
Definition: correlator_plugin.h:528
PluginChunk function API.
Definition: correlator_plugin.h:271
AP_TypeDiscriminator
A typed discriminator for the contents of an AP_Type object.
Definition: AP_PluginCommon.h:47
PluginContext.
Definition: correlator_plugin.h:216
AP_PLUGIN_DLL_SYM AP_ErrorCode(AP_PLUGIN_CALL * AP_PluginShutdownFunctionPtr)(const AP_PluginContext *ctx)
Pointer to a plugin library shutdown function.
Definition: correlator_plugin.h:759
AP_PluginFunctionPtr fptr
Pointer to function implementation.
Definition: correlator_plugin.h:712
Shared definitions for the C and C++ plugin APIs.
AP_uint32 nParams
Argument count.
Definition: correlator_plugin.h:715
AP_float64(AP_PLUGIN_CALL *getFloatValue)(const AP_PluginType *obj)
Get the float value of the object.
AP_Type function API.
Definition: correlator_plugin.h:332
const struct AP_PluginChunk_Functions * functions
Pointer to function API.
Definition: correlator_plugin.h:302
PluginChunk.
Definition: correlator_plugin.h:298
const struct AP_PluginChunk_Callbacks * callbacks
Pointer to the user callbacks for this chunk.
Definition: correlator_plugin.h:304
void(AP_PLUGIN_CALL *sendEvent)(AP_PluginCorrelatorInterface *_interface
Send an event to the correlator.
PluginChunk callback API.
Definition: correlator_plugin.h:287
const AP_char8 **AP_PLUGIN_CALL * getStringSequenceElements(const AP_PluginType *obj, AP_uint32 start, AP_uint32 length)
Generate an array of string pointers encapsulating elements [start..start+length-1] of the sequence o...
const AP_char8 ** paramTypes
Argument types - nParams elements, unterminated.
Definition: correlator_plugin.h:718
AP_float64 *AP_PLUGIN_CALL * getFloatSequenceElements(const AP_PluginType *obj, AP_uint32 start, AP_uint32 length)
Generate an array of floats encapsulating elements [start..start+length-1] of the sequence object...
const struct AP_PluginCorrelatorInterface_Functions * functions
Pointer to the function API.
Definition: correlator_plugin.h:152
const AP_PluginType *AP_PLUGIN_CALL * getElement(const AP_PluginTypeList *list, AP_uint32 index)
Return a pointer to an element of the list.
AP_TypeDiscriminator(AP_PLUGIN_CALL *getDiscriminator)(const AP_PluginType *obj)
Return the type contained in this object.
AP_CorrelatorPluginExceptionType
Typed differentiator for different exceptions in the plugin interface.
Definition: correlator_plugin.h:77
AP_int64(AP_PLUGIN_CALL *getIntegerValue)(const AP_PluginType *obj)
Get the integer value of the object.
void *AP_PLUGIN_CALL * getUserData(const AP_PluginChunk *chunk)
Return the user data stored in this chunk.
AP_PluginChunk *AP_PLUGIN_CALL * createChunk(const AP_PluginContext *ctx, const struct AP_PluginChunk_Callbacks *callbacks, void *userData)
Create a chunk.
AP_CorrelatorPluginExceptionType(AP_PLUGIN_CALL *getExceptionType)(const AP_PluginContext *ctx)
Returns the type of the most recent exception.
const struct AP_PluginContext_Functions * functions
Pointer to the function API.
Definition: correlator_plugin.h:220
const AP_char8 * name
Function name.
Definition: correlator_plugin.h:709
Out of bands.
Definition: correlator_plugin.h:81
PluginContext function API.
Definition: correlator_plugin.h:172
AP_bool(AP_PLUGIN_CALL *getBooleanValue)(const AP_PluginType *obj)
Get the boolean value of the object.
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.
Definition: correlator_plugin.h:779
AP_PluginChunk *const *AP_PLUGIN_CALL * getChunkSequenceElements(const AP_PluginType *obj, AP_uint32 start, AP_uint32 length)
Generate an array of pointers to chunks encapsulating elements [start..start+length-1] of the sequenc...
void(AP_PLUGIN_CALL *freeUserData)(AP_PluginChunk *chunk)
Free the specified user data.
AP_PLUGIN_DLL_SYM AP_ErrorCode(AP_PLUGIN_CALL *AP_PluginThreadEndedFunctionPtr)(const AP_PluginContext *ctx)
Type of a plugin library thread ended function.
Definition: correlator_plugin.h:814
AP_ENGINE_CLIENT_API void char8free(char *string)
Free any char* string returned from the client API.
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.
Definition: correlator_plugin.h:749
AP_bool *AP_PLUGIN_CALL * getBooleanSequenceElements(const AP_PluginType *obj, AP_uint32 start, AP_uint32 length)
Generate an array of booleans encapsulating elements [start..start+length-1] of the sequence object...
AP_PLUGIN_DLL_SYM AP_Capabilities(AP_PLUGIN_CALL * AP_PluginGetCapabilitiesFunctionPtr)(const AP_PluginContext *ctx)
Type of a plugin capability function.
Definition: correlator_plugin.h:797
Plugin function descriptor.
Definition: correlator_plugin.h:706
AP_uint32(AP_PLUGIN_CALL *version)(const AP_PluginContext *ctx)
Return active plugin API version.
AP_Type.
Definition: correlator_plugin.h:524
void(AP_PLUGIN_CALL *setChunkValue)(const AP_PluginType *obj
Set the chunk value of the object.
Unimplemented method.
Definition: correlator_plugin.h:80
AP_bool(AP_PLUGIN_CALL *isEmpty)(const AP_PluginTypeList *list)
Return true iff size() == 0.
AP_PluginChunk *AP_PLUGIN_CALL * getChunkValue(const AP_PluginType *obj)
Get the chunk value of the object.