Browse Source

auto commit

tags/v1.2
yitter 4 years ago
parent
commit
ffd831cd16
5 changed files with 59 additions and 20 deletions
  1. +26
    -13
      C#.NET/source/Yitter.IdGenTest/Program.cs
  2. +1
    -1
      C/source/CMakeLists.txt
  3. +10
    -3
      C/source/YitIdHelper.c
  4. +9
    -3
      C/source/YitIdHelper.h
  5. +13
    -0
      C/source/idgen/common.h

+ 26
- 13
C#.NET/source/Yitter.IdGenTest/Program.cs View File

@@ -61,28 +61,41 @@ namespace Yitter.OrgSystem.TestA
}
}
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)]
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern long NextId();
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.StdCall)]
public static extern void SetWorkerId(int workerId);
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void SetWorkerId(uint workerId);
[DllImport("yitidgenc.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int TestId();
private static void CallDll()
{
int i = 0;
long id = 0;
DateTime start = DateTime.Now;
try
{
int i = 0;
long id = 0;
DateTime start = DateTime.Now;
var ids = TestId();
SetWorkerId(1);
//SetWorkerId(1);
while (i < 50000)
while (i < 50000)
{
id = NextId();
i++;
}
DateTime end = DateTime.Now;
Console.WriteLine("id:" + id);
Console.WriteLine($"+++++++++++C# call rust dll, gen 5W, total: {(end - start).TotalMilliseconds} ms");
}
catch (Exception ex)
{
id = NextId();
i++;
Console.WriteLine(ex.Message);
}
DateTime end = DateTime.Now;
Console.WriteLine("id:" + id);
Console.WriteLine($"+++++++++++C# call rust dll, gen 5W, total: {(end - start).TotalMilliseconds} ms");
}
private static void RunSingle()


+ 1
- 1
C/source/CMakeLists.txt View File

@@ -8,7 +8,7 @@ set(CMAKE_C_STANDARD 11)
aux_source_directory(. DIR_SRCS)
add_subdirectory(idgen)

##编译动态库
#编译动态库
#set(LIB_SRC YitIdHelper.h YitIdHelper.c)
#add_library(YitIdGenLib SHARED ${LIB_SRC})
#target_link_libraries(YitIdGenLib idgen)


+ 10
- 3
C/source/YitIdHelper.c View File

@@ -11,12 +11,19 @@ extern void SetIdGenerator(IdGeneratorOptions options) {
SetOptions(options);
}
extern void SetWorker(uint32_t workerId) {
extern void SetWorkerId(uint32_t workerId) {
IdGeneratorOptions options = BuildIdGenOptions(workerId);
SetIdGenerator(options);
SetOptions(options);
//SetIdGenerator(options);
}
extern uint64_t NextId() {
return GetIdGenInstance()->NextId();
IdGenerator *generator = GetIdGenInstance();
uint64_t id = generator->NextId();
free(generator);
return id;
}
extern uint64_t TestId() {
return 123456;
}

+ 9
- 3
C/source/YitIdHelper.h View File

@@ -5,11 +5,17 @@
#pragma once
#include "idgen/IdGenOptions.h"
#include "idgen/common.h"
__declspec(dllexport) void __stdcall SetIdGenerator(IdGeneratorOptions options);
TAP_DLLEXPORT
extern void SetIdGenerator(IdGeneratorOptions options);
__declspec(dllexport) void __stdcall SetWorker(uint32_t workerId);
TAP_DLLEXPORT
extern void SetWorkerId(uint32_t workerId);
__declspec(dllexport) uint64_t __stdcall NextId();
TAP_DLLEXPORT
extern uint64_t NextId();
TAP_DLLEXPORT
extern uint64_t TestId() ;

+ 13
- 0
C/source/idgen/common.h View File

@@ -0,0 +1,13 @@
//
// Created by zhouzj on 2021/3/28.
//
#pragma once
#ifdef _WIN32
#define TAP_CDECL __cdecl
#define TAP_DLLEXPORT __declspec(dllexport)
#else
#define TAP_CDECL
#define TAP_DLLEXPORT __declspec(dllexport)
#endif

Loading…
Cancel
Save