12 #ifndef CLEMEXT_H_INCLUDED
13 #define CLEMEXT_H_INCLUDED
15 #include <sys/types.h>
21 #if (defined(_MSC_VER) && _MSC_VER >= 1100) || defined(HPUX) // VC++ and HPUX
22 #ifdef CLEMEXT_EXPORTS
23 #define CLEMEXT_API __declspec(dllexport)
25 #define CLEMEXT_API __declspec(dllimport)
27 #elif defined(SOLARIS) // SOLARIS
28 #define CLEMEXT_API __global
29 #elif defined(LINUX) // LINUX
30 #define CLEMEXT_API __attribute__ ((visibility ("default")))
31 #else // other platforms
45 #define CLEMEXT_ERR_MODULE_SPECIFIC 1u
46 #define CLEMEXT_ERR_INVALID_HANDLE 2u
47 #define CLEMEXT_ERR_INVALID_OPERATION 3u
48 #define CLEMEXT_ERR_NODE_TYPE_NOT_SUPPORTED 4u
49 #define CLEMEXT_ERR_XML 5u
50 #define CLEMEXT_ERR_NOT_CONFIGURED 6u
51 #define CLEMEXT_ERR_NOT_EXECUTABLE 7u
52 #define CLEMEXT_ERR_NOT_EXECUTING 8u
53 #define CLEMEXT_ERR_NO_DATA 9u
54 #define CLEMEXT_ERR_NO_SQL 10u
55 #define CLEMEXT_ERR_NO_ERROR_DETAIL 11u
56 #define CLEMEXT_ERR_INTERRUPTED 12u
57 #define CLEMEXT_ERR_INSUFFICIENT_BUFFER 13u
58 #define CLEMEXT_ERR_CALLBACK 14u
59 #define CLEMEXT_ERR_NOT_INITIALIZED 15u
60 #define CLEMEXT_ERR_NOT_IMPLEMENTED 16u
61 #define CLEMEXT_ERR_CANNOT_MATCH_KEY 17u
62 #define CLEMEXT_ERR_EXCEPTION_THROWN 18u
63 #define CLEMEXT_ERR_NOT_INTERACTIVE 19u
64 #define CLEMEXT_ERR_NOT_INTERACTING 20u
65 #define CLEMEXT_ERR_INVALID_REQUEST 21u
66 #define CLEMEXT_ERR_NO_REPLY 22u
67 #define CLEMEXT_ERR_REMOTE 23u
68 #define CLEMEXT_ERR_INSUFFICIENT_METADATA 24u
69 #define CLEMEXT_ERR_FILE_ACCESS_RESTRICTED 25u
70 #define CLEMEXT_ERR_JVM_ATTACH_FAILED 39u
71 #define CLEMEXT_ERR_JVM_DETACH_FAILED 41u
82 #define CLEMEXT_NODE_DATA_READER 0
83 #define CLEMEXT_NODE_DATA_WRITER 1
84 #define CLEMEXT_NODE_DATA_TRANSFORMER 2
85 #define CLEMEXT_NODE_MODEL_BUILDER 3
86 #define CLEMEXT_NODE_MODEL_APPLIER 4
87 #define CLEMEXT_NODE_DOCUMENT_BUILDER 5
93 #define CLEMEXT_MODE_QUERY 0
94 #define CLEMEXT_MODE_EXECUTE 1
101 #define CLEMEXT_FILEPATH_TYPE_DATA 0
102 #define CLEMEXT_FILEPATH_TYPE_PROGRAM 1
125 #include "clemext_opaque.h"
143 CLEMEXTHostHandle host,
144 CLEMEXTErrorCode* errorCode);
155 CLEMEXTErrorCode* errorCode);
174 CLEMEXTErrorCode* errorCode);
189 CLEMEXTNodeHandle node,
192 CLEMEXTPeerHandle* peer,
193 CLEMEXTErrorCode* errorCode);
205 CLEMEXTPeerHandle peer,
206 CLEMEXTErrorCode* errorCode);
220 CLEMEXTPeerHandle peer,
221 CLEMEXTErrorCode* errorCode);
238 CLEMEXTPeerHandle peer,
243 CLEMEXTErrorCode* errorCode);
260 CLEMEXTPeerHandle peer,
264 CLEMEXTErrorCode* errorCode);
281 CLEMEXTPeerHandle peer,
282 const char *catalogId,
286 CLEMEXTErrorCode* errorCode);
300 CLEMEXTPeerHandle peer,
301 CLEMEXTIteratorHandle iterator,
302 CLEMEXTProgressHandle listener,
303 CLEMEXTErrorCode* errorCode);
315 CLEMEXTPeerHandle peer,
316 CLEMEXTErrorCode* errorCode);
328 CLEMEXTPeerHandle peer,
329 CLEMEXTErrorCode* errorCode);
341 CLEMEXTPeerHandle peer,
342 CLEMEXTErrorCode* errorCode);
359 CLEMEXTPeerHandle peer,
362 size_t* value_length,
363 CLEMEXTErrorCode* errorCode);
380 CLEMEXTPeerHandle peer,
384 CLEMEXTErrorCode* errorCode);
401 CLEMEXTPeerHandle peer,
405 CLEMEXTErrorCode* errorCode);
423 CLEMEXTPeerHandle peer,
424 CLEMEXTChannelHandle channel,
425 CLEMEXTErrorCode* errorCode);
441 CLEMEXTPeerHandle peer,
442 CLEMEXTErrorCode* errorCode);
462 CLEMEXTPeerHandle peer,
465 CLEMEXTErrorCode* errorCode);
489 CLEMEXTPeerHandle peer,
491 size_t reply_buffer_size,
492 size_t* reply_data_size,
493 CLEMEXTErrorCode* errorCode);
509 CLEMEXTPeerHandle peer,
513 CLEMEXTErrorCode* errorCode);
525 CLEMEXTPeerHandle peer,
526 CLEMEXTErrorCode* errorCode);
555 CLEMEXTHostHandle host,
559 CLEMEXTErrorCode* errorCode)
561 return host->getHostInformation(host->target,buffer,buffer_size,data_size,errorCode);
577 CLEMEXTNodeHandle node,
581 CLEMEXTErrorCode* errorCode) {
582 return node->getNodeInformation(node->target,buffer,buffer_size,data_size,errorCode);
597 CLEMEXTNodeHandle node,
601 CLEMEXTErrorCode* errorCode) {
602 return node->getParameters(node->target,buffer,buffer_size,data_size,errorCode);
617 CLEMEXTNodeHandle node,
621 CLEMEXTErrorCode* errorCode) {
622 return node->getDataModel(node->target,buffer,buffer_size,data_size,errorCode);
637 CLEMEXTNodeHandle node,
641 CLEMEXTErrorCode* errorCode) {
642 return node->getOutputDataModel(node->target,buffer,buffer_size,data_size,errorCode);
659 CLEMEXTNodeHandle node,
663 CLEMEXTErrorCode* errorCode) {
664 return node->getSQLGeneration(node->target,buffer,buffer_size,data_size,errorCode);
682 CLEMEXTNodeHandle node,
683 const char *passwordId,
687 CLEMEXTErrorCode* errorCode) {
688 return node->getPassword(node->target,passwordId,buffer,buffer_size,data_size,errorCode);
705 CLEMEXTNodeHandle node,
710 CLEMEXTErrorCode* errorCode) {
711 return node->getFilePath(node->target,fileId,buffer,buffer_size,data_size,errorCode);
730 CLEMEXTNodeHandle node,
735 CLEMEXTErrorCode* errorCode) {
736 return node->expandFilePath(node->target,path,buffer,buffer_size,data_size,errorCode);
758 CLEMEXTNodeHandle node,
760 unsigned int path_type,
764 CLEMEXTErrorCode* errorCode) {
765 return node->expandFilePathExt(node->target,path,path_type,buffer,buffer_size,data_size,errorCode);
779 CLEMEXTIteratorHandle iterator,
780 CLEMEXTErrorCode* errorCode) {
781 return iterator->nextRecord(iterator->target,errorCode);
799 CLEMEXTIteratorHandle iterator,
802 size_t* value_length,
803 CLEMEXTErrorCode* errorCode) {
804 return iterator->getRecordValue(iterator->target,index,value,value_length,errorCode);
817 CLEMEXTIteratorHandle iterator,
818 CLEMEXTErrorCode* errorCode) {
819 return iterator->rewind(iterator->target,errorCode);
835 CLEMEXTProgressHandle progress,
838 CLEMEXTErrorCode* errorCode) {
839 return progress->report(progress->target,report,report_size,errorCode);
857 CLEMEXTChannelHandle channel,
860 CLEMEXTErrorCode* errorCode) {
861 return channel->send(channel->target, message, message_size, errorCode);
879 CLEMEXTNodeHandle node,
883 CLEMEXTErrorCode* errorCode) {
884 return node->getPsmMergeInformation(node->target,buffer,buffer_size,data_size,errorCode);
903 CLEMEXTHostHandle host,
905 host->trace(host->target, text);
919 CLEMEXTHostHandle host,
920 const char *root_element_name,
921 CLEMEXTXMLHandle *doc) {
922 return host->createNewDocument(host->target,root_element_name,doc);
936 CLEMEXTHostHandle host,
937 const char *contents,
938 CLEMEXTXMLHandle *doc) {
939 return host->createDocumentFromContents(host->target,contents,doc);
954 CLEMEXTXMLHandle doc) {
955 return doc->disposeDocument(doc->target);
973 CLEMEXTXMLHandle xml,
977 return xml->doc2string(xml->target,buffer,buffer_size,data_size);
992 CLEMEXTXMLHandle xml,
996 return xml->getName(xml->target,buffer,buffer_size,data_size);
1012 inline CLEMEXTStatus
1014 CLEMEXTXMLHandle xml,
1018 size_t* data_size) {
1019 return xml->getAttribute(xml->target,name,buffer,buffer_size,data_size);
1031 inline CLEMEXTStatus
1033 CLEMEXTXMLHandle xml,
1036 return xml->hasAttribute(xml->target,name,result);
1051 inline CLEMEXTStatus
1053 CLEMEXTXMLHandle xml,
1055 CLEMEXTXMLIteratorHandle *iterator) {
1056 return xml->getElementIterator(xml->target,name,iterator);
1070 inline CLEMEXTStatus
1072 CLEMEXTXMLHandle xml,
1073 CLEMEXTXMLIteratorHandle *iterator) {
1074 return xml->getTextIterator(xml->target,iterator);
1086 inline CLEMEXTStatus
1088 CLEMEXTXMLHandle xml,
1089 const char *attribute_name,
1090 const char *attribute_value) {
1091 return xml->addAttribute(xml->target,attribute_name,attribute_value);
1102 inline CLEMEXTStatus
1104 CLEMEXTXMLHandle xml,
1105 const char *attribute_name) {
1106 return xml->removeAttribute(xml->target,attribute_name);
1117 inline CLEMEXTStatus
1119 CLEMEXTXMLHandle xml,
1121 return xml->addText(xml->target,data);
1134 inline CLEMEXTStatus
1136 CLEMEXTXMLHandle xml,
1137 const char *element_name,
1138 void **new_element) {
1139 return xml->addElement(xml->target,element_name,new_element);
1150 inline CLEMEXTStatus
1152 CLEMEXTXMLIteratorHandle iterator,
1155 return iterator->hasMoreItems(iterator->target,result);
1166 inline CLEMEXTStatus
1168 CLEMEXTXMLIteratorHandle iterator,
1171 return iterator->nextItem(iterator->target,item);
1183 inline CLEMEXTStatus
1185 CLEMEXTXMLIteratorHandle iterator
1187 return iterator->deleteCurrentItem(iterator->target);
1197 inline CLEMEXTStatus
1199 CLEMEXTXMLIteratorHandle iterator
1201 return iterator->close(iterator->target);
1213 CLEMEXTPeerHandle peer,
1216 void ***out_buffers,
1217 CLEMEXTErrorCode *errorCode );
1230 inline CLEMEXTStatus
1232 CLEMEXTNodeHandle node,
1234 const char* options,
1235 CLEMEXTErrorCode* errorCode)
1237 return node->attachJVM(node->target, jni_env, options, errorCode);
1250 inline CLEMEXTStatus
1252 CLEMEXTNodeHandle node,
1254 CLEMEXTErrorCode *errorCode)
1256 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)