mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-04-07 14:18:18 +02:00
70f632bda8f Merge bitcoin-core/libmultiprocess#265: ci: set LC_ALL in shell scripts 8e8e564259a Merge bitcoin-core/libmultiprocess#249: fixes for race conditions on disconnects 05d34cc2ec3 ci: set LC_ALL in shell scripts e606fd84a8c Merge bitcoin-core/libmultiprocess#264: ci: reduce nproc multipliers ff0eed1bf18 refactor: Use loop variable in type-context.h ff1d8ba172a refactor: Move type-context.h getParams() call closer to use 1dbc59a4aa3 race fix: m_on_cancel called after request finishes 1643d05ba07 test: m_on_cancel called after request finishes f5509a31fcc race fix: getParams() called after request cancel 4a60c39f24a test: getParams() called after request cancel f11ec29ed20 race fix: worker thread destroyed before it is initialized a1d643348f4 test: worker thread destroyed before it is initialized 336023382c4 ci: reduce nproc multipliers b090beb9651 Merge bitcoin-core/libmultiprocess#256: ci: cache gnu32 nix store be8622816da ci: cache gnu32 nix store 975270b619c Merge bitcoin-core/libmultiprocess#263: ci: bump timeout factor to 40 09f10e5a598 ci: bump timeout factor to 40 db8f76ad290 Merge bitcoin-core/libmultiprocess#253: ci: run some Bitcoin Core CI jobs 55a9b557b19 ci: set Bitcoin Core CI test repetition fb0fc84d556 ci: add TSan job with instrumented libc++ 0f29c38725b ci: add Bitcoin Core IPC tests (ASan + macOS) 3f64320315d Merge bitcoin-core/libmultiprocess#262: ci: enable clang-tidy in macOS job, use nullptr cd9f8bdc9f0 Merge bitcoin-core/libmultiprocess#258: log: add socket connected info message and demote destroy logs to debug b5d6258a42f Merge bitcoin-core/libmultiprocess#255: fix: use unsigned char cast and sizeof in LogEscape escape sequence d94688e2c32 Merge bitcoin-core/libmultiprocess#251: Improved CustomBuildField for std::optional in IPC/libmultiprocess a9499fad755 mp: use nullptr with pthread_threadid_np f499e37850f ci: enable clang-tidy in macOS job 98f1352159d log: add socket connected info message and demote destroy logs to debug 554a481ea73 fix: use unsigned char cast and sizeof in LogEscape escape sequence 1977b9f3f65 Use std::forward in CustomBuildField for std::optional to allow move semantics, resolves FIXME 22bec918c97 Merge bitcoin-core/libmultiprocess#247: type-map: Work around LLVM 22 "out of bounds index" error 8a5e3ae6ed2 Merge bitcoin-core/libmultiprocess#242: proxy-types: add CustomHasField hook to map Cap'n Proto values to null C++ values e8d35246918 Merge bitcoin-core/libmultiprocess#246: doc: Bump version 8 > 9 97d877053b6 proxy-types: add CustomHasField hook for nullable decode paths 8c2f10252c9 refactor: add missing includes to mp/type-data.h b1638aceb40 doc: Bump version 8 > 9 f61af487217 type-map: Work around LLVM 22 "out of bounds index" error git-subtree-dir: src/ipc/libmultiprocess git-subtree-split: 70f632bda8f80449b6240f98da768206a535a04e
80 lines
3.0 KiB
Cap'n Proto
80 lines
3.0 KiB
Cap'n Proto
# Copyright (c) The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
@0xe102a54b33a43a20;
|
|
|
|
using Cxx = import "/capnp/c++.capnp";
|
|
$Cxx.namespace("mp::test::messages");
|
|
|
|
using Proxy = import "/mp/proxy.capnp";
|
|
$Proxy.include("mp/test/foo.h");
|
|
$Proxy.includeTypes("mp/test/foo-types.h");
|
|
|
|
interface FooInterface $Proxy.wrap("mp::test::FooImplementation") {
|
|
add @0 (a :Int32, b :Int32) -> (result :Int32);
|
|
addOut @19 (a :Int32, b :Int32) -> (ret :Int32);
|
|
addInOut @20 (x :Int32, sum :Int32) -> (sum :Int32);
|
|
mapSize @1 (map :List(Pair(Text, Text))) -> (result :Int32);
|
|
pass @2 (arg :FooStruct) -> (result :FooStruct);
|
|
raise @3 (arg :FooStruct) -> (error :FooStruct $Proxy.exception("mp::test::FooStruct"));
|
|
initThreadMap @4 (threadMap: Proxy.ThreadMap) -> (threadMap :Proxy.ThreadMap);
|
|
callback @5 (context :Proxy.Context, callback :FooCallback, arg: Int32) -> (result :Int32);
|
|
callbackUnique @6 (context :Proxy.Context, callback :FooCallback, arg: Int32) -> (result :Int32);
|
|
callbackShared @7 (context :Proxy.Context, callback :FooCallback, arg: Int32) -> (result :Int32);
|
|
saveCallback @8 (context :Proxy.Context, callback :FooCallback) -> ();
|
|
callbackSaved @9 (context :Proxy.Context, arg: Int32) -> (result :Int32);
|
|
callbackExtended @10 (context :Proxy.Context, callback :ExtendedCallback, arg: Int32) -> (result :Int32);
|
|
passCustom @11 (arg :FooCustom) -> (result :FooCustom);
|
|
passEmpty @12 (arg :FooEmpty) -> (result :FooEmpty);
|
|
passMessage @13 (arg :FooMessage) -> (result :FooMessage);
|
|
passMutable @14 (arg :FooMutable) -> (arg :FooMutable);
|
|
passEnum @15 (arg :Int32) -> (result :Int32);
|
|
passFn @16 (context :Proxy.Context, fn :FooFn) -> (result :Int32);
|
|
callFn @17 () -> ();
|
|
callFnAsync @18 (context :Proxy.Context) -> ();
|
|
callIntFnAsync @21 (context :Proxy.Context, arg :Int32) -> (result :Int32);
|
|
passDataPointers @22 (arg :List(Data)) -> (result :List(Data));
|
|
}
|
|
|
|
interface FooCallback $Proxy.wrap("mp::test::FooCallback") {
|
|
destroy @0 (context :Proxy.Context) -> ();
|
|
call @1 (context :Proxy.Context, arg :Int32) -> (result :Int32);
|
|
}
|
|
|
|
interface ExtendedCallback extends(FooCallback) $Proxy.wrap("mp::test::ExtendedCallback") {
|
|
callExtended @0 (context :Proxy.Context, arg :Int32) -> (result :Int32);
|
|
}
|
|
|
|
interface FooFn $Proxy.wrap("ProxyCallback<std::function<int()>>") {
|
|
destroy @0 (context :Proxy.Context) -> ();
|
|
call @1 (context :Proxy.Context) -> (result :Int32);
|
|
}
|
|
|
|
struct FooStruct $Proxy.wrap("mp::test::FooStruct") {
|
|
name @0 :Text;
|
|
setint @1 :List(Int32);
|
|
vbool @2 :List(Bool);
|
|
}
|
|
|
|
struct FooCustom $Proxy.wrap("mp::test::FooCustom") {
|
|
v1 @0 :Text;
|
|
v2 @1 :Int32;
|
|
}
|
|
|
|
struct FooEmpty $Proxy.wrap("mp::test::FooEmpty") {
|
|
}
|
|
|
|
struct FooMessage {
|
|
message @0 :Text;
|
|
}
|
|
|
|
struct FooMutable {
|
|
message @0 :Text;
|
|
}
|
|
|
|
struct Pair(T1, T2) {
|
|
first @0 :T1;
|
|
second @1 :T2;
|
|
}
|