From dcfc7f4aa066834f59f5e0457fe2885838fe7b8d Mon Sep 17 00:00:00 2001 From: sergiu128 Date: Mon, 25 Nov 2024 10:09:28 +0100 Subject: [PATCH] Easier go bindings --- bindings-go/README.md | 6 ++++++ bindings-go/ffi.h | 26 ++++++++++++++++++++++++++ bindings-go/libseqlock.a | Bin 0 -> 164392 bytes bindings-go/seqlock.go | 6 +++--- seqlock/include/seqlock/seqlock.hpp | 1 + 5 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 bindings-go/README.md create mode 100644 bindings-go/ffi.h create mode 100644 bindings-go/libseqlock.a diff --git a/bindings-go/README.md b/bindings-go/README.md new file mode 100644 index 0000000..d549416 --- /dev/null +++ b/bindings-go/README.md @@ -0,0 +1,6 @@ +# Go bindings for seqlock.cpp + +- `ffi.h` is from `seqlock.cpp/seqlock/include/seqlock/ffi.h` +- `libseqlock.a` is from `seqlock.cpp/build_rel/seqlock/libseqlock.a` after `cmake -GNinja -DCMAKE_BUILD_TYPE=Release ../` in `build_rel` + +The above two files are updated on each version upgrade. diff --git a/bindings-go/ffi.h b/bindings-go/ffi.h new file mode 100644 index 0000000..241b9e4 --- /dev/null +++ b/bindings-go/ffi.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct SingleWriterSeqLock { + void* lock; + void* shm; // optional + void* shared_data; + size_t shared_data_size; + bool shared; +}; + +struct SingleWriterSeqLock* seqlock_single_writer_create(char* data, size_t size); +struct SingleWriterSeqLock* seqlock_single_writer_create_shared(const char* filename, size_t size); +void seqlock_single_writer_destroy(struct SingleWriterSeqLock*); +void seqlock_single_writer_load(struct SingleWriterSeqLock* wrapper_lock, char* dst, size_t size); +void seqlock_single_writer_store(struct SingleWriterSeqLock* wrapper_lock, char* src, size_t size); + +#ifdef __cplusplus +} +#endif diff --git a/bindings-go/libseqlock.a b/bindings-go/libseqlock.a new file mode 100644 index 0000000000000000000000000000000000000000..0598288f4c3b919b7362bd9ab0f1269e6b34480d GIT binary patch literal 164392 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 m3@=EmNLl%3U0h%d&*Y;rRb-cAUxp literal 0 HcmV?d00001 diff --git a/bindings-go/seqlock.go b/bindings-go/seqlock.go index fc2181b..1098d6a 100644 --- a/bindings-go/seqlock.go +++ b/bindings-go/seqlock.go @@ -1,9 +1,9 @@ package seqlock -// #cgo CXXFLAGS: -std=c++20 -I/Users/sergiu/Code/my-projects/seqlock.cpp/deps_install/include -// #cgo LDFLAGS: /Users/sergiu/Code/my-projects/seqlock.cpp/deps_install/lib/libseqlock.a -lstdc++ +// #cgo CXXFLAGS: -std=c++23 +// #cgo LDFLAGS: ${SRCDIR}/libseqlock.a -lstdc++ // #include -// #include "/Users/sergiu/Code/my-projects/seqlock.cpp/deps_install/include/seqlock/ffi.h" +// #include "ffi.h" import "C" import ( diff --git a/seqlock/include/seqlock/seqlock.hpp b/seqlock/include/seqlock/seqlock.hpp index e8fb5c7..0490d5a 100644 --- a/seqlock/include/seqlock/seqlock.hpp +++ b/seqlock/include/seqlock/seqlock.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include