From 20d6cc97b13d28e6477254cff890f41c7651b723 Mon Sep 17 00:00:00 2001 From: Franklin_Zhang Date: Sat, 13 Jan 2018 15:04:54 +0800 Subject: [PATCH] C Export Signed-off-by: Franklin_Zhang --- wrap/include/NxServiceAPI_C.h | 30 ++++++++++++++++++++ wrap/src/NxServiceAPI_C.cpp | 52 +++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 wrap/include/NxServiceAPI_C.h create mode 100644 wrap/src/NxServiceAPI_C.cpp diff --git a/wrap/include/NxServiceAPI_C.h b/wrap/include/NxServiceAPI_C.h new file mode 100644 index 0000000..60b50b7 --- /dev/null +++ b/wrap/include/NxServiceAPI_C.h @@ -0,0 +1,30 @@ +#ifndef __NJGIS_NJSERVICEAPI_C_H__ +#define __NJGIS_NJSERVICEAPI_C_H__ + +#include "../../include/NxServiceAPI.h" + +namespace NJGIS +{ + namespace SERVICE + { + extern "C" NJGIS_SERVICE void* createServerHandle(char* ip, int port); + + extern "C" NJGIS_SERVICE void* createServiceAccessHandle(void* server); + + extern "C" NJGIS_SERVICE void* createModelServiceList(void* access); + + extern "C" NJGIS_SERVICE int cleanModelServiceListHandle(void* list); + + extern "C" NJGIS_SERVICE int getModelServiceCount(void* list); + + extern "C" NJGIS_SERVICE void* getModelServiceByIndex(void* list, int index); + + extern "C" NJGIS_SERVICE const char* getModelServiceOID(void* ms); + + extern "C" NJGIS_SERVICE const char* getModelServiceName(void* ms); + + extern "C" NJGIS_SERVICE const char* getModelServiceType(void* ms); + } +} + +#endif \ No newline at end of file diff --git a/wrap/src/NxServiceAPI_C.cpp b/wrap/src/NxServiceAPI_C.cpp new file mode 100644 index 0000000..8704120 --- /dev/null +++ b/wrap/src/NxServiceAPI_C.cpp @@ -0,0 +1,52 @@ +#include "../include/NxServiceAPI_C.h" + +extern "C" NJGIS_SERVICE void* NJGIS::SERVICE::createServerHandle( char* ip, int port ) +{ + NJGIS::SERVICE::INjServerFactory* pServerFactory = NJGIS::SERVICE::createServerFactory(); + INjServer* pServer = pServerFactory->createServer(ip, port); + return pServer; +} + +extern "C" NJGIS_SERVICE void* NJGIS::SERVICE::createServiceAccessHandle( void* server ) +{ + INjServiceAccess* pAccess = ((INjServer*)server)->getServiceAccess(); + return pAccess; +} + +extern "C" NJGIS_SERVICE void* NJGIS::SERVICE::createModelServiceList( void* access ) +{ + std::vector* list = new std::vector; + ((NJGIS::SERVICE::INjServiceAccess*)access)->getModelServicesList(*list); + return list; +} + +extern "C" NJGIS_SERVICE int NJGIS::SERVICE::cleanModelServiceListHandle( void* list ) +{ + delete (std::vector*)list; + return 1; +} + +extern "C" NJGIS_SERVICE int NJGIS::SERVICE::getModelServiceCount( void* list ) +{ + return ((std::vector*)list)->size(); +} + +extern "C" NJGIS_SERVICE void* NJGIS::SERVICE::getModelServiceByIndex( void* list, int index ) +{ + return (*((std::vector*)list))[index]; +} + +extern "C" NJGIS_SERVICE const char* NJGIS::SERVICE::getModelServiceOID( void* ms ) +{ + return ((INjModelService*)ms)->getServiceOID(); +} + +extern "C" NJGIS_SERVICE const char* NJGIS::SERVICE::getModelServiceName( void* ms ) +{ + return ((INjModelService*)ms)->getServiceName(); +} + +extern "C" NJGIS_SERVICE const char* NJGIS::SERVICE::getModelServiceType( void* ms ) +{ + return ((INjModelService*)ms)->getServiceType(); +} -- Gitee