From 34b21f247d32a4c7234a44aa766aa0573ecb97be Mon Sep 17 00:00:00 2001 From: Franklin_Zhang Date: Sat, 13 Jan 2018 21:18:39 +0800 Subject: [PATCH 1/2] fix C API bugs Signed-off-by: Franklin_Zhang --- wrap/include/NxServiceAPI_C.h | 26 ++++++++++---------------- wrap/src/NxServiceAPI_C.cpp | 28 ++++++++++++++-------------- 2 files changed, 24 insertions(+), 30 deletions(-) diff --git a/wrap/include/NxServiceAPI_C.h b/wrap/include/NxServiceAPI_C.h index 60b50b7..d9aed56 100644 --- a/wrap/include/NxServiceAPI_C.h +++ b/wrap/include/NxServiceAPI_C.h @@ -3,28 +3,22 @@ #include "../../include/NxServiceAPI.h" -namespace NJGIS -{ - namespace SERVICE - { - extern "C" NJGIS_SERVICE void* createServerHandle(char* ip, int port); +extern "C" NJGIS_SERVICE void* njgis_service_createServerHandle(char* ip, int port); - extern "C" NJGIS_SERVICE void* createServiceAccessHandle(void* server); +extern "C" NJGIS_SERVICE void* njgis_service_createServiceAccessHandle(void* server); - extern "C" NJGIS_SERVICE void* createModelServiceList(void* access); +extern "C" NJGIS_SERVICE void* njgis_service_createModelServiceList(void* access); - extern "C" NJGIS_SERVICE int cleanModelServiceListHandle(void* list); +extern "C" NJGIS_SERVICE int njgis_service_cleanModelServiceListHandle(void* list); - extern "C" NJGIS_SERVICE int getModelServiceCount(void* list); +extern "C" NJGIS_SERVICE int njgis_service_getModelServiceCount(void* list); - extern "C" NJGIS_SERVICE void* getModelServiceByIndex(void* list, int index); +extern "C" NJGIS_SERVICE void* njgis_service_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* njgis_service_getModelServiceOID(void* ms); - extern "C" NJGIS_SERVICE const char* getModelServiceType(void* ms); - } -} +extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceName(void* ms); + +extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceType(void* ms); #endif \ No newline at end of file diff --git a/wrap/src/NxServiceAPI_C.cpp b/wrap/src/NxServiceAPI_C.cpp index 8704120..7749515 100644 --- a/wrap/src/NxServiceAPI_C.cpp +++ b/wrap/src/NxServiceAPI_C.cpp @@ -1,52 +1,52 @@ #include "../include/NxServiceAPI_C.h" -extern "C" NJGIS_SERVICE void* NJGIS::SERVICE::createServerHandle( char* ip, int port ) +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); + NJGIS::SERVICE::INjServer* pServer = pServerFactory->createServer(ip, port); return pServer; } -extern "C" NJGIS_SERVICE void* NJGIS::SERVICE::createServiceAccessHandle( void* server ) +extern "C" NJGIS_SERVICE void* njgis_service_createServiceAccessHandle( void* server ) { - INjServiceAccess* pAccess = ((INjServer*)server)->getServiceAccess(); + NJGIS::SERVICE::INjServiceAccess* pAccess = ((NJGIS::SERVICE::INjServer*)server)->getServiceAccess(); return pAccess; } -extern "C" NJGIS_SERVICE void* NJGIS::SERVICE::createModelServiceList( void* access ) +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 ) +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 ) +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 ) +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 ) +extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceOID( void* ms ) { - return ((INjModelService*)ms)->getServiceOID(); + return ((NJGIS::SERVICE::INjModelService*)ms)->getServiceOID(); } -extern "C" NJGIS_SERVICE const char* NJGIS::SERVICE::getModelServiceName( void* ms ) +extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceName( void* ms ) { - return ((INjModelService*)ms)->getServiceName(); + return ((NJGIS::SERVICE::INjModelService*)ms)->getServiceName(); } -extern "C" NJGIS_SERVICE const char* NJGIS::SERVICE::getModelServiceType( void* ms ) +extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceType( void* ms ) { - return ((INjModelService*)ms)->getServiceType(); + return ((NJGIS::SERVICE::INjModelService*)ms)->getServiceType(); } -- Gitee From ef5b6e0c79577c9e39c0a4f6b02d7eafdc6f9522 Mon Sep 17 00:00:00 2001 From: Franklin_Zhang Date: Wed, 17 Jan 2018 15:35:54 +0800 Subject: [PATCH 2/2] update CSharp wrap Signed-off-by: Franklin_Zhang --- .gitignore | 1 + swig/csharp/NJModelServiceImport.cs | 40 ++++++++++++++++++++ swig/csharp/factory/NJServiceFactory.cs | 0 swig/csharp/interface/INJModelService.cs | 28 ++++++++++++++ swig/csharp/interface/INJServer.cs | 14 +++++++ swig/csharp/interface/INJServiceAccess.cs | 15 ++++++++ swig/csharp/interfaces/INJModelService.cs | 0 swig/csharp/interfaces/INJServer.cs | 0 swig/csharp/interfaces/INJServiceAccess.cs | 0 swig/csharp/model/NJModelServerModel.cs | 44 ++++++++++++++++++++++ swig/csharp/model/NJServerModel.cs | 11 ++++++ 11 files changed, 153 insertions(+) create mode 100644 .gitignore create mode 100644 swig/csharp/NJModelServiceImport.cs create mode 100644 swig/csharp/factory/NJServiceFactory.cs create mode 100644 swig/csharp/interface/INJModelService.cs create mode 100644 swig/csharp/interface/INJServer.cs create mode 100644 swig/csharp/interface/INJServiceAccess.cs create mode 100644 swig/csharp/interfaces/INJModelService.cs create mode 100644 swig/csharp/interfaces/INJServer.cs create mode 100644 swig/csharp/interfaces/INJServiceAccess.cs create mode 100644 swig/csharp/model/NJModelServerModel.cs create mode 100644 swig/csharp/model/NJServerModel.cs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c38058 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +NJModelServiceSDK diff --git a/swig/csharp/NJModelServiceImport.cs b/swig/csharp/NJModelServiceImport.cs new file mode 100644 index 0000000..54c2ef9 --- /dev/null +++ b/swig/csharp/NJModelServiceImport.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; + + +namespace NJModelService.dotnet +{ + public class NjServer + { + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_createServerHandle", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern int NJS_CreateServerHandle(byte[] ip, int port); + + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_createServiceAccessHandle", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern int NJS_CreateServiceAccessHandle(byte[] server); + + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_createModelServiceList", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern int NJS_CreateModelServiceList(byte[] access); + + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_cleanModelServiceListHandle", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern int NJS_CleanModelServiceListHandle(byte[] list); + + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_getModelServiceCount", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern int NJS_GetModelServiceListCount(byte[] list); + + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_getModelServiceByIndex", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern int NJS_GetModelServiceByIndex(byte[] list, int index); + + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_getModelServiceOID", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern byte[] NJS_GetModelServiceOID(byte[] ms); + + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_getModelServiceName", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern byte[] NJS_GetModelServiceName(byte[] ms); + + [DllImport("NJModelServiceWrap.dll", EntryPoint = "njgis_service_getModelServiceType", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] + public static extern byte[] NJS_GetModelServiceType(byte[] ms); + + } +} diff --git a/swig/csharp/factory/NJServiceFactory.cs b/swig/csharp/factory/NJServiceFactory.cs new file mode 100644 index 0000000..e69de29 diff --git a/swig/csharp/interface/INJModelService.cs b/swig/csharp/interface/INJModelService.cs new file mode 100644 index 0000000..613a0d2 --- /dev/null +++ b/swig/csharp/interface/INJModelService.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; +using System.Collections; + + +namespace NJModelService.dotnet +{ + public interface INJModelService + { + public string ServiceOID + { + get; + } + + public string ServiceName + { + get; + } + + public string getServcie + { + get; + } + } +} \ No newline at end of file diff --git a/swig/csharp/interface/INJServer.cs b/swig/csharp/interface/INJServer.cs new file mode 100644 index 0000000..5b7da43 --- /dev/null +++ b/swig/csharp/interface/INJServer.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; + + +namespace NJModelService.dotnet +{ + public interface INJServer + { + public INJServiceAccess CreateModelServiceAccess(); + } +} diff --git a/swig/csharp/interface/INJServiceAccess.cs b/swig/csharp/interface/INJServiceAccess.cs new file mode 100644 index 0000000..b779ea4 --- /dev/null +++ b/swig/csharp/interface/INJServiceAccess.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; +using System.Collections; + + +namespace NJModelService.dotnet +{ + public interface INJServiceAccess + { + + } +} diff --git a/swig/csharp/interfaces/INJModelService.cs b/swig/csharp/interfaces/INJModelService.cs new file mode 100644 index 0000000..e69de29 diff --git a/swig/csharp/interfaces/INJServer.cs b/swig/csharp/interfaces/INJServer.cs new file mode 100644 index 0000000..e69de29 diff --git a/swig/csharp/interfaces/INJServiceAccess.cs b/swig/csharp/interfaces/INJServiceAccess.cs new file mode 100644 index 0000000..e69de29 diff --git a/swig/csharp/model/NJModelServerModel.cs b/swig/csharp/model/NJModelServerModel.cs new file mode 100644 index 0000000..da24091 --- /dev/null +++ b/swig/csharp/model/NJModelServerModel.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; +using System.Collections; + + +namespace NJModelService.dotnet +{ + public class NJModelServiceModel : INJModelService + { + private string _oid; + + private string _name; + + private string _type; + + public NJModelServiceModel( + string oid, + string name, + string type) + { + this._oid = oid; + this._name = name; + this._type = type; + } + + public string ServiceOID + { + get { return _oid; } + } + + public string ServiceName + { + get { return _name; } + } + + public string getServcie + { + get { return _type; } + } + } +} \ No newline at end of file diff --git a/swig/csharp/model/NJServerModel.cs b/swig/csharp/model/NJServerModel.cs new file mode 100644 index 0000000..4298af5 --- /dev/null +++ b/swig/csharp/model/NJServerModel.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace NJModelService.dotnet.model +{ + class NJServerModel + { + } +} -- Gitee