14 #ifndef CLEMEXT_H_INCLUDED
15 #define CLEMEXT_H_INCLUDED
17 #include <sys/types.h>
23 #if (defined(_MSC_VER) && _MSC_VER >= 1100) || defined(HPUX) // VC++ and HPUX
24 #ifdef CLEMEXT_EXPORTS
25 #define CLEMEXT_API __declspec(dllexport)
27 #define CLEMEXT_API __declspec(dllimport)
29 #elif defined(SOLARIS) // SOLARIS
30 #define CLEMEXT_API __global
31 #elif defined(LINUX) // LINUX
32 #define CLEMEXT_API __attribute__ ((visibility ("default")))
33 #else // other platforms
47 #define CLEMEXT_ERR_MODULE_SPECIFIC 1u
48 #define CLEMEXT_ERR_INVALID_HANDLE 2u
49 #define CLEMEXT_ERR_INVALID_OPERATION 3u
50 #define CLEMEXT_ERR_NODE_TYPE_NOT_SUPPORTED 4u
51 #define CLEMEXT_ERR_XML 5u
52 #define CLEMEXT_ERR_NOT_CONFIGURED 6u
53 #define CLEMEXT_ERR_NOT_EXECUTABLE 7u
54 #define CLEMEXT_ERR_NOT_EXECUTING 8u
55 #define CLEMEXT_ERR_NO_DATA 9u
56 #define CLEMEXT_ERR_NO_SQL 10u
57 #define CLEMEXT_ERR_NO_ERROR_DETAIL 11u
58 #define CLEMEXT_ERR_INTERRUPTED 12u
59 #define CLEMEXT_ERR_INSUFFICIENT_BUFFER 13u
60 #define CLEMEXT_ERR_CALLBACK 14u
61 #define CLEMEXT_ERR_NOT_INITIALIZED 15u
62 #define CLEMEXT_ERR_NOT_IMPLEMENTED 16u
63 #define CLEMEXT_ERR_CANNOT_MATCH_KEY 17u
64 #define CLEMEXT_ERR_EXCEPTION_THROWN 18u
65 #define CLEMEXT_ERR_NOT_INTERACTIVE 19u
66 #define CLEMEXT_ERR_NOT_INTERACTING 20u
67 #define CLEMEXT_ERR_INVALID_REQUEST 21u
68 #define CLEMEXT_ERR_NO_REPLY 22u
69 #define CLEMEXT_ERR_REMOTE 23u
70 #define CLEMEXT_ERR_INSUFFICIENT_METADATA 24u
71 #define CLEMEXT_ERR_FILE_ACCESS_RESTRICTED 25u
72 #define CLEMEXT_ERR_JVM_ATTACH_FAILED 39u
73 #define CLEMEXT_ERR_JVM_DETACH_FAILED 41u
84 #define CLEMEXT_NODE_DATA_READER 0
85 #define CLEMEXT_NODE_DATA_WRITER 1
86 #define CLEMEXT_NODE_DATA_TRANSFORMER 2
87 #define CLEMEXT_NODE_MODEL_BUILDER 3
88 #define CLEMEXT_NODE_MODEL_APPLIER 4
89 #define CLEMEXT_NODE_DOCUMENT_BUILDER 5
95 #define CLEMEXT_MODE_QUERY 0
96 #define CLEMEXT_MODE_EXECUTE 1
103 #define CLEMEXT_FILEPATH_TYPE_DATA 0
104 #define CLEMEXT_FILEPATH_TYPE_PROGRAM 1
127 #include "clemext_opaque.h"
145 CLEMEXTHostHandle host,
146 CLEMEXTErrorCode* errorCode);
157 CLEMEXTErrorCode* errorCode);
176 CLEMEXTErrorCode* errorCode);
191 CLEMEXTNodeHandle node,
194 CLEMEXTPeerHandle* peer,
195 CLEMEXTErrorCode* errorCode);
207 CLEMEXTPeerHandle peer,
208 CLEMEXTErrorCode* errorCode);
222 CLEMEXTPeerHandle peer,
223 CLEMEXTErrorCode* errorCode);
240 CLEMEXTPeerHandle peer,
245 CLEMEXTErrorCode* errorCode);
262 CLEMEXTPeerHandle peer,
266 CLEMEXTErrorCode* errorCode);
283 CLEMEXTPeerHandle peer,
284 const char *catalogId,
288 CLEMEXTErrorCode* errorCode);
302 CLEMEXTPeerHandle peer,
303 CLEMEXTIteratorHandle iterator,
304 CLEMEXTProgressHandle listener,
305 CLEMEXTErrorCode* errorCode);
317 CLEMEXTPeerHandle peer,
318 CLEMEXTErrorCode* errorCode);
330 CLEMEXTPeerHandle peer,
331 CLEMEXTErrorCode* errorCode);
343 CLEMEXTPeerHandle peer,
344 CLEMEXTErrorCode* errorCode);
361 CLEMEXTPeerHandle peer,
364 size_t* value_length,
365 CLEMEXTErrorCode* errorCode);
382 CLEMEXTPeerHandle peer,
386 CLEMEXTErrorCode* errorCode);
403 CLEMEXTPeerHandle peer,
407 CLEMEXTErrorCode* errorCode);
425 CLEMEXTPeerHandle peer,
426 CLEMEXTChannelHandle channel,
427 CLEMEXTErrorCode* errorCode);
443 CLEMEXTPeerHandle peer,
444 CLEMEXTErrorCode* errorCode);
464 CLEMEXTPeerHandle peer,
467 CLEMEXTErrorCode* errorCode);
491 CLEMEXTPeerHandle peer,
493 size_t reply_buffer_size,
494 size_t* reply_data_size,
495 CLEMEXTErrorCode* errorCode);
511 CLEMEXTPeerHandle peer,
515 CLEMEXTErrorCode* errorCode);
527 CLEMEXTPeerHandle peer,
528 CLEMEXTErrorCode* errorCode);
557 CLEMEXTHostHandle host,
561 CLEMEXTErrorCode* errorCode)
563 return host->getHostInformation(host->target,buffer,buffer_size,data_size,errorCode);
579 CLEMEXTNodeHandle node,
583 CLEMEXTErrorCode* errorCode) {
584 return node->getNodeInformation(node->target,buffer,buffer_size,data_size,errorCode);
599 CLEMEXTNodeHandle node,
603 CLEMEXTErrorCode* errorCode) {
604 return node->getParameters(node->target,buffer,buffer_size,data_size,errorCode);
619 CLEMEXTNodeHandle node,
623 CLEMEXTErrorCode* errorCode) {
624 return node->getDataModel(node->target,buffer,buffer_size,data_size,errorCode);
639 CLEMEXTNodeHandle node,
643 CLEMEXTErrorCode* errorCode) {
644 return node->getOutputDataModel(node->target,buffer,buffer_size,data_size,errorCode);
661 CLEMEXTNodeHandle node,
665 CLEMEXTErrorCode* errorCode) {
666 return node->getSQLGeneration(node->target,buffer,buffer_size,data_size,errorCode);
684 CLEMEXTNodeHandle node,
685 const char *passwordId,
689 CLEMEXTErrorCode* errorCode) {
690 return node->getPassword(node->target,passwordId,buffer,buffer_size,data_size,errorCode);
707 CLEMEXTNodeHandle node,
712 CLEMEXTErrorCode* errorCode) {
713 return node->getFilePath(node->target,fileId,buffer,buffer_size,data_size,errorCode);
732 CLEMEXTNodeHandle node,
737 CLEMEXTErrorCode* errorCode) {
738 return node->expandFilePath(node->target,path,buffer,buffer_size,data_size,errorCode);
760 CLEMEXTNodeHandle node,
762 unsigned int path_type,
766 CLEMEXTErrorCode* errorCode) {
767 return node->expandFilePathExt(node->target,path,path_type,buffer,buffer_size,data_size,errorCode);
781 CLEMEXTIteratorHandle iterator,
782 CLEMEXTErrorCode* errorCode) {
783 return iterator->nextRecord(iterator->target,errorCode);
801 CLEMEXTIteratorHandle iterator,
804 size_t* value_length,
805 CLEMEXTErrorCode* errorCode) {
806 return iterator->getRecordValue(iterator->target,index,value,value_length,errorCode);
819 CLEMEXTIteratorHandle iterator,
820 CLEMEXTErrorCode* errorCode) {
821 return iterator->rewind(iterator->target,errorCode);
837 CLEMEXTProgressHandle progress,
840 CLEMEXTErrorCode* errorCode) {
841 return progress->report(progress->target,report,report_size,errorCode);
859 CLEMEXTChannelHandle channel,
862 CLEMEXTErrorCode* errorCode) {
863 return channel->send(channel->target, message, message_size, errorCode);
881 CLEMEXTNodeHandle node,
885 CLEMEXTErrorCode* errorCode) {
886 return node->getPsmMergeInformation(node->target,buffer,buffer_size,data_size,errorCode);
905 CLEMEXTHostHandle host,
907 host->trace(host->target, text);
921 CLEMEXTHostHandle host,
922 const char *root_element_name,
923 CLEMEXTXMLHandle *doc) {
924 return host->createNewDocument(host->target,root_element_name,doc);
938 CLEMEXTHostHandle host,
939 const char *contents,
940 CLEMEXTXMLHandle *doc) {
941 return host->createDocumentFromContents(host->target,contents,doc);
956 CLEMEXTXMLHandle doc) {
957 return doc->disposeDocument(doc->target);
975 CLEMEXTXMLHandle xml,
979 return xml->doc2string(xml->target,buffer,buffer_size,data_size);
994 CLEMEXTXMLHandle xml,
998 return xml->getName(xml->target,buffer,buffer_size,data_size);
1014 inline CLEMEXTStatus
1016 CLEMEXTXMLHandle xml,
1020 size_t* data_size) {
1021 return xml->getAttribute(xml->target,name,buffer,buffer_size,data_size);
1033 inline CLEMEXTStatus
1035 CLEMEXTXMLHandle xml,
1038 return xml->hasAttribute(xml->target,name,result);
1053 inline CLEMEXTStatus
1055 CLEMEXTXMLHandle xml,
1057 CLEMEXTXMLIteratorHandle *iterator) {
1058 return xml->getElementIterator(xml->target,name,iterator);
1072 inline CLEMEXTStatus
1074 CLEMEXTXMLHandle xml,
1075 CLEMEXTXMLIteratorHandle *iterator) {
1076 return xml->getTextIterator(xml->target,iterator);
1088 inline CLEMEXTStatus
1090 CLEMEXTXMLHandle xml,
1091 const char *attribute_name,
1092 const char *attribute_value) {
1093 return xml->addAttribute(xml->target,attribute_name,attribute_value);
1104 inline CLEMEXTStatus
1106 CLEMEXTXMLHandle xml,
1107 const char *attribute_name) {
1108 return xml->removeAttribute(xml->target,attribute_name);
1119 inline CLEMEXTStatus
1121 CLEMEXTXMLHandle xml,
1123 return xml->addText(xml->target,data);
1136 inline CLEMEXTStatus
1138 CLEMEXTXMLHandle xml,
1139 const char *element_name,
1140 void **new_element) {
1141 return xml->addElement(xml->target,element_name,new_element);
1152 inline CLEMEXTStatus
1154 CLEMEXTXMLIteratorHandle iterator,
1157 return iterator->hasMoreItems(iterator->target,result);
1168 inline CLEMEXTStatus
1170 CLEMEXTXMLIteratorHandle iterator,
1173 return iterator->nextItem(iterator->target,item);
1185 inline CLEMEXTStatus
1187 CLEMEXTXMLIteratorHandle iterator
1189 return iterator->deleteCurrentItem(iterator->target);
1199 inline CLEMEXTStatus
1201 CLEMEXTXMLIteratorHandle iterator
1203 return iterator->close(iterator->target);
1215 CLEMEXTPeerHandle peer,
1218 void ***out_buffers,
1219 CLEMEXTErrorCode *errorCode );
1232 inline CLEMEXTStatus
1234 CLEMEXTNodeHandle node,
1236 const char* options,
1237 CLEMEXTErrorCode* errorCode)
1239 return node->attachJVM(node->target, jni_env, options, errorCode);
1252 inline CLEMEXTStatus
1254 CLEMEXTNodeHandle node,
1256 CLEMEXTErrorCode *errorCode)
1258 return node->detachJVM(node->target, jni_env, errorCode);
CLEMEXT_API CLEMEXTStatus clemext_initialise(CLEMEXTHostHandle host, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_getDataModel(CLEMEXTPeerHandle peer, int mode, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_request(CLEMEXTPeerHandle peer, const char *request, size_t request_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xml_addText(CLEMEXTXMLHandle xml, const char *data)
CLEMEXTInteger CLEMEXTDate
CLEMEXTStatus clemext_host_createNewDocument(CLEMEXTHostHandle host, const char *root_element_name, CLEMEXTXMLHandle *doc)
CLEMEXTStatus clemext_host_createDocumentFromContents(CLEMEXTHostHandle host, const char *contents, CLEMEXTXMLHandle *doc)
CLEMEXTStatus clemext_xml_getElementIterator(CLEMEXTXMLHandle xml, const char *name, CLEMEXTXMLIteratorHandle *iterator)
CLEMEXTStatus clemext_xml_hasAttribute(CLEMEXTXMLHandle xml, const char *name, int *result)
CLEMEXTStatus clemext_xml_addAttribute(CLEMEXTXMLHandle xml, const char *attribute_name, const char *attribute_value)
CLEMEXT_API CLEMEXTStatus clemext_peer_getRequestReply(CLEMEXTPeerHandle peer, char *reply_buffer, size_t reply_buffer_size, size_t *reply_data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_endExecution(CLEMEXTPeerHandle peer, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_create_peer(CLEMEXTNodeHandle node, int nodeType, const char *nodeId, CLEMEXTPeerHandle *peer, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_endInteraction(CLEMEXTPeerHandle peer, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_getParameters(CLEMEXTNodeHandle node, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_getExecutionRequirements(CLEMEXTPeerHandle peer, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xml_getTextIterator(CLEMEXTXMLHandle xml, CLEMEXTXMLIteratorHandle *iterator)
CLEMEXTStatus clemext_xmliterator_nextItem(CLEMEXTXMLIteratorHandle iterator, void **item)
CLEMEXTStatus clemext_channel_send(CLEMEXTChannelHandle channel, const char *message, size_t message_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_cleanup(CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_progress_report(CLEMEXTProgressHandle progress, const char *report, size_t report_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_getDataModel(CLEMEXTNodeHandle node, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTInteger CLEMEXTTime
CLEMEXT_API CLEMEXTStatus clemext_getModuleInformation(char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_getRecordValue(CLEMEXTPeerHandle peer, size_t index, void **value, size_t *value_length, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_iterator_nextRecord(CLEMEXTIteratorHandle iterator, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_nextRecord(CLEMEXTPeerHandle peer, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_getPsmMergeInformation(CLEMEXTNodeHandle node, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_psmMerge(CLEMEXTPeerHandle peer, CLEMEXTErrorCode *errorCode)
CLEMEXTInteger CLEMEXTDatetime
CLEMEXTStatus clemext_node_detachJVM(CLEMEXTNodeHandle node, void *jni_env, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xml_doc2string(CLEMEXTXMLHandle xml, char *buffer, size_t buffer_size, size_t *data_size)
CLEMEXTStatus clemext_node_attachJVM(CLEMEXTNodeHandle node, void **jni_env, const char *options, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_iterator_rewind(CLEMEXTIteratorHandle iterator, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_getOutputDataModel(CLEMEXTNodeHandle node, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_expandFilePath(CLEMEXTNodeHandle node, const char *path, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xmliterator_deleteCurrentItem(CLEMEXTXMLIteratorHandle iterator)
CLEMEXT_API CLEMEXTStatus clemext_destroy_peer(CLEMEXTPeerHandle peer, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_call(CLEMEXTPeerHandle peer, const char *fnName, void **in_buffers, void ***out_buffers, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xml_addElement(CLEMEXTXMLHandle xml, const char *element_name, void **new_element)
CLEMEXTStatus clemext_node_getFilePath(CLEMEXTNodeHandle node, const char *fileId, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xml_disposeDocument(CLEMEXTXMLHandle doc)
void clemext_host_trace(CLEMEXTHostHandle host, const char *text)
CLEMEXT_API CLEMEXTStatus clemext_peer_beginExecution(CLEMEXTPeerHandle peer, CLEMEXTIteratorHandle iterator, CLEMEXTProgressHandle listener, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_iterator_getRecordValue(CLEMEXTIteratorHandle iterator, size_t index, void **value, size_t *value_length, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_expandFilePathExt(CLEMEXTNodeHandle node, const char *path, unsigned int path_type, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_getNodeInformation(CLEMEXTNodeHandle node, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_getPassword(CLEMEXTNodeHandle node, const char *passwordId, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_configure(CLEMEXTPeerHandle peer, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_node_getSQLGeneration(CLEMEXTNodeHandle node, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_getCatalogueInformation(CLEMEXTPeerHandle peer, const char *catalogId, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xml_removeAttribute(CLEMEXTXMLHandle xml, const char *attribute_name)
CLEMEXTStatus clemext_host_getHostInformation(CLEMEXTHostHandle host, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_beginInteraction(CLEMEXTPeerHandle peer, CLEMEXTChannelHandle channel, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xml_getAttribute(CLEMEXTXMLHandle xml, const char *name, char *buffer, size_t buffer_size, size_t *data_size)
CLEMEXT_API CLEMEXTStatus clemext_peer_getPsmControlInformation(CLEMEXTPeerHandle peer, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xml_getName(CLEMEXTXMLHandle xml, char *buffer, size_t buffer_size, size_t *data_size)
CLEMEXTStatus clemext_xmliterator_close(CLEMEXTXMLIteratorHandle iterator)
CLEMEXT_API CLEMEXTStatus clemext_peer_getSQLGeneration(CLEMEXTPeerHandle peer, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXT_API CLEMEXTStatus clemext_peer_getErrorDetail(CLEMEXTPeerHandle peer, char *buffer, size_t buffer_size, size_t *data_size, CLEMEXTErrorCode *errorCode)
CLEMEXTStatus clemext_xmliterator_hasMoreItems(CLEMEXTXMLIteratorHandle iterator, int *result)
CLEMEXT_API CLEMEXTStatus clemext_peer_cancelExecution(CLEMEXTPeerHandle peer, CLEMEXTErrorCode *errorCode)