Commit 6b35c286 authored by Kenton Varda's avatar Kenton Varda

Working on RealmGateway support, need AnyStruct, gotta merge.

parent 352bb995
......@@ -186,6 +186,8 @@ struct AnyPointer {
#if !CAPNP_LITE
class Pipeline {
public:
typedef AnyPointer Pipelines;
inline Pipeline(decltype(nullptr)) {}
inline explicit Pipeline(kj::Own<PipelineHook>&& hook): hook(kj::mv(hook)) {}
......@@ -321,9 +323,11 @@ public:
// Version of getPipelinedCap() passing the array by move. May avoid a copy in some cases.
// Default implementation just calls the other version.
static inline kj::Own<PipelineHook> from(AnyPointer::Pipeline&& pipeline) {
return kj::mv(pipeline.hook);
}
template <typename Pipeline, typename = FromPipeline<Pipeline>>
static inline kj::Own<PipelineHook> from(Pipeline&& pipeline);
private:
template <typename T> struct FromImpl;
};
#endif // !CAPNP_LITE
......@@ -491,6 +495,25 @@ struct PointerHelpers<AnyPointer, Kind::OTHER> {
} // namespace _ (private)
template <typename T>
struct PipelineHook::FromImpl {
static inline kj::Own<PipelineHook> apply(typename T::Pipeline&& pipeline) {
return from(kj::mv(pipeline._typeless));
}
};
template <>
struct PipelineHook::FromImpl<AnyPointer> {
static inline kj::Own<PipelineHook> apply(AnyPointer::Pipeline&& pipeline) {
return kj::mv(pipeline.hook);
}
};
template <typename Pipeline, typename T>
inline kj::Own<PipelineHook> PipelineHook::from(Pipeline&& pipeline) {
return FromImpl<T>::apply(kj::fwd<Pipeline>(pipeline));
}
} // namespace capnp
#endif // CAPNP_ANY_H_
......@@ -181,6 +181,10 @@ template <typename T>
using FromBuilder = typename kj::Decay<T>::Builds;
// FromBuilder<MyType::Builder> = MyType (for any Cap'n Proto type).
template <typename T>
using FromPipeline = typename kj::Decay<T>::Pipelines;
// FromBuilder<MyType::Pipeline> = MyType (for any Cap'n Proto type).
template <typename T>
using FromClient = typename kj::Decay<T>::Calls;
// FromReader<MyType::Client> = MyType (for any Cap'n Proto interface type).
......
......@@ -1721,6 +1721,7 @@ private:
kj::mv(methodDecls),
"private:\n"
" ::capnp::AnyPointer::Pipeline _typeless;\n"
" friend class ::capnp::PipelineHook;\n"
" template <typename, ::capnp::Kind>\n"
" friend struct ::capnp::ToDynamic_;\n"
"};\n"
......
......@@ -466,6 +466,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -549,6 +550,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -632,6 +634,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -838,6 +841,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -938,6 +942,7 @@ public:
inline ::capnp::compiler::Expression::Pipeline getValue();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1027,6 +1032,7 @@ public:
inline ::capnp::compiler::Expression::Pipeline getFunction();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1117,6 +1123,7 @@ public:
inline ::capnp::compiler::LocatedText::Pipeline getName();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1481,6 +1488,7 @@ public:
inline Id::Pipeline getId();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1569,6 +1577,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1654,6 +1663,7 @@ public:
inline Value::Pipeline getValue();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1743,6 +1753,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1847,6 +1858,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1963,6 +1975,7 @@ public:
inline DefaultValue::Pipeline getDefaultValue();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2052,6 +2065,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2153,6 +2167,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2232,6 +2247,7 @@ public:
inline ::capnp::compiler::Expression::Pipeline getTarget();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2322,6 +2338,7 @@ public:
inline ::capnp::compiler::Expression::Pipeline getValue();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2407,6 +2424,7 @@ public:
inline DefaultValue::Pipeline getDefaultValue();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2496,6 +2514,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2574,6 +2593,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2659,6 +2679,7 @@ public:
inline Results::Pipeline getResults();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2748,6 +2769,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2887,6 +2909,7 @@ public:
inline ::capnp::compiler::Expression::Pipeline getType();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2966,6 +2989,7 @@ public:
inline ::capnp::compiler::Declaration::Pipeline getRoot();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......
......@@ -244,6 +244,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -363,6 +364,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -441,6 +443,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -519,6 +522,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......
......@@ -52,8 +52,28 @@ interface Persistent@0xc8cb212fcd9f5691(SturdyRef) {
# to specify the `SturdyRef` parameter, since this type may differ from app to app or even host
# to host.
save @0 () -> (sturdyRef :SturdyRef);
save @0 SaveParams -> SaveResults;
# Save a capability persistently so that it can be restored by a future connection. Not all
# capabilities can be saved -- application interfaces should define which capabilities support
# this and which do not.
struct SaveParams {}
struct SaveResults {
sturdyRef @0 :SturdyRef;
}
}
interface RealmGateway(InternalRef, ExternalRef) {
# Interface invoked when a SturdyRef is about to cross realms. The RPC system supports providing
# a RealmGateway as a callback hook when setting up RPC over some VatNetwork.
import @0 (cap :Persistent(ExternalRef), params :Persistent(InternalRef).SaveParams)
-> Persistent(InternalRef).SaveResults;
# Given an external capability, save it and return an internal reference. Used when someone
# inside the realm tries to save a capability from outside the realm.
export @1 (cap :Persistent(InternalRef), params :Persistent(ExternalRef).SaveParams)
-> Persistent(ExternalRef).SaveResults;
# Given an internal capability, save it and return an external reference. Used when someone
# outside the realm tries to save a capability from inside the realm.
}
......@@ -5,7 +5,7 @@
namespace capnp {
namespace schemas {
static const ::capnp::_::AlignedData<44> b_c8cb212fcd9f5691 = {
static const ::capnp::_::AlignedData<52> b_c8cb212fcd9f5691 = {
{ 0, 0, 0, 0, 5, 0, 6, 0,
145, 86, 159, 205, 47, 33, 203, 200,
23, 0, 0, 0, 3, 0, 0, 0,
......@@ -13,21 +13,29 @@ static const ::capnp::_::AlignedData<44> b_c8cb212fcd9f5691 = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0,
21, 0, 0, 0, 18, 1, 0, 0,
37, 0, 0, 0, 7, 0, 0, 0,
37, 0, 0, 0, 39, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
33, 0, 0, 0, 71, 0, 0, 0,
113, 0, 0, 0, 7, 0, 0, 0,
113, 0, 0, 0, 15, 0, 0, 0,
65, 0, 0, 0, 71, 0, 0, 0,
145, 0, 0, 0, 7, 0, 0, 0,
145, 0, 0, 0, 15, 0, 0, 0,
99, 97, 112, 110, 112, 47, 112, 101,
114, 115, 105, 115, 116, 101, 110, 116,
46, 99, 97, 112, 110, 112, 58, 80,
101, 114, 115, 105, 115, 116, 101, 110,
116, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 1, 0,
8, 0, 0, 0, 1, 0, 1, 0,
165, 115, 48, 24, 89, 186, 111, 247,
9, 0, 0, 0, 90, 0, 0, 0,
191, 239, 64, 140, 193, 72, 104, 183,
9, 0, 0, 0, 98, 0, 0, 0,
83, 97, 118, 101, 80, 97, 114, 97,
109, 115, 0, 0, 0, 0, 0, 0,
83, 97, 118, 101, 82, 101, 115, 117,
108, 116, 115, 0, 0, 0, 0, 0,
4, 0, 0, 0, 3, 0, 5, 0,
0, 0, 0, 0, 0, 0, 0, 0,
246, 251, 127, 14, 96, 3, 134, 201,
15, 169, 183, 122, 200, 49, 216, 248,
165, 115, 48, 24, 89, 186, 111, 247,
191, 239, 64, 140, 193, 72, 104, 183,
17, 0, 0, 0, 42, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
12, 0, 0, 0, 0, 0, 1, 0,
......@@ -54,8 +62,8 @@ static const ::capnp::_::AlignedData<44> b_c8cb212fcd9f5691 = {
::capnp::word const* const bp_c8cb212fcd9f5691 = b_c8cb212fcd9f5691.words;
#if !CAPNP_LITE
static const ::capnp::_::RawSchema* const d_c8cb212fcd9f5691[] = {
&s_c98603600e7ffbf6,
&s_f8d831c87ab7a90f,
&s_b76848c18c40efbf,
&s_f76fba59183073a5,
};
static const uint16_t m_c8cb212fcd9f5691[] = {0};
const ::capnp::_::RawBrandedSchema::Dependency bd_c8cb212fcd9f5691[] = {
......@@ -63,19 +71,19 @@ const ::capnp::_::RawBrandedSchema::Dependency bd_c8cb212fcd9f5691[] = {
{ 50331648, ::capnp::Persistent<>::SaveResults::_capnpPrivate::brand },
};
const ::capnp::_::RawSchema s_c8cb212fcd9f5691 = {
0xc8cb212fcd9f5691, b_c8cb212fcd9f5691.words, 44, d_c8cb212fcd9f5691, m_c8cb212fcd9f5691,
0xc8cb212fcd9f5691, b_c8cb212fcd9f5691.words, 52, d_c8cb212fcd9f5691, m_c8cb212fcd9f5691,
2, 1, nullptr, nullptr, nullptr, { &s_c8cb212fcd9f5691, nullptr, bd_c8cb212fcd9f5691, 0, sizeof(bd_c8cb212fcd9f5691) / sizeof(bd_c8cb212fcd9f5691[0]), nullptr }
};
#endif // !CAPNP_LITE
static const ::capnp::_::AlignedData<18> b_c98603600e7ffbf6 = {
static const ::capnp::_::AlignedData<19> b_f76fba59183073a5 = {
{ 0, 0, 0, 0, 5, 0, 6, 0,
246, 251, 127, 14, 96, 3, 134, 201,
165, 115, 48, 24, 89, 186, 111, 247,
34, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0,
21, 0, 0, 0, 114, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
21, 0, 0, 0, 106, 1, 0, 0,
41, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
......@@ -84,37 +92,39 @@ static const ::capnp::_::AlignedData<18> b_c98603600e7ffbf6 = {
114, 115, 105, 115, 116, 101, 110, 116,
46, 99, 97, 112, 110, 112, 58, 80,
101, 114, 115, 105, 115, 116, 101, 110,
116, 46, 115, 97, 118, 101, 36, 80,
97, 114, 97, 109, 115, 0, 0, 0, }
116, 46, 83, 97, 118, 101, 80, 97,
114, 97, 109, 115, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 1, 0, }
};
::capnp::word const* const bp_c98603600e7ffbf6 = b_c98603600e7ffbf6.words;
::capnp::word const* const bp_f76fba59183073a5 = b_f76fba59183073a5.words;
#if !CAPNP_LITE
const ::capnp::_::RawBrandedSchema::Dependency bd_c98603600e7ffbf6[] = {
const ::capnp::_::RawBrandedSchema::Dependency bd_f76fba59183073a5[] = {
};
const ::capnp::_::RawSchema s_c98603600e7ffbf6 = {
0xc98603600e7ffbf6, b_c98603600e7ffbf6.words, 18, nullptr, nullptr,
0, 0, nullptr, nullptr, nullptr, { &s_c98603600e7ffbf6, nullptr, bd_c98603600e7ffbf6, 0, sizeof(bd_c98603600e7ffbf6) / sizeof(bd_c98603600e7ffbf6[0]), nullptr }
const ::capnp::_::RawSchema s_f76fba59183073a5 = {
0xf76fba59183073a5, b_f76fba59183073a5.words, 19, nullptr, nullptr,
0, 0, nullptr, nullptr, nullptr, { &s_f76fba59183073a5, nullptr, bd_f76fba59183073a5, 0, sizeof(bd_f76fba59183073a5) / sizeof(bd_f76fba59183073a5[0]), nullptr }
};
#endif // !CAPNP_LITE
static const ::capnp::_::AlignedData<35> b_f8d831c87ab7a90f = {
static const ::capnp::_::AlignedData<36> b_b76848c18c40efbf = {
{ 0, 0, 0, 0, 5, 0, 6, 0,
15, 169, 183, 122, 200, 49, 216, 248,
191, 239, 64, 140, 193, 72, 104, 183,
34, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
145, 86, 159, 205, 47, 33, 203, 200,
1, 0, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0,
21, 0, 0, 0, 122, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
21, 0, 0, 0, 114, 1, 0, 0,
41, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
33, 0, 0, 0, 63, 0, 0, 0,
37, 0, 0, 0, 63, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
99, 97, 112, 110, 112, 47, 112, 101,
114, 115, 105, 115, 116, 101, 110, 116,
46, 99, 97, 112, 110, 112, 58, 80,
101, 114, 115, 105, 115, 116, 101, 110,
116, 46, 115, 97, 118, 101, 36, 82,
101, 115, 117, 108, 116, 115, 0, 0,
116, 46, 83, 97, 118, 101, 82, 101,
115, 117, 108, 116, 115, 0, 0, 0,
0, 0, 0, 0, 1, 0, 1, 0,
4, 0, 0, 0, 3, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0,
......@@ -133,15 +143,303 @@ static const ::capnp::_::AlignedData<35> b_f8d831c87ab7a90f = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, }
};
::capnp::word const* const bp_f8d831c87ab7a90f = b_f8d831c87ab7a90f.words;
::capnp::word const* const bp_b76848c18c40efbf = b_b76848c18c40efbf.words;
#if !CAPNP_LITE
static const uint16_t m_b76848c18c40efbf[] = {0};
static const uint16_t i_b76848c18c40efbf[] = {0};
const ::capnp::_::RawBrandedSchema::Dependency bd_b76848c18c40efbf[] = {
};
const ::capnp::_::RawSchema s_b76848c18c40efbf = {
0xb76848c18c40efbf, b_b76848c18c40efbf.words, 36, nullptr, m_b76848c18c40efbf,
0, 1, i_b76848c18c40efbf, nullptr, nullptr, { &s_b76848c18c40efbf, nullptr, bd_b76848c18c40efbf, 0, sizeof(bd_b76848c18c40efbf) / sizeof(bd_b76848c18c40efbf[0]), nullptr }
};
#endif // !CAPNP_LITE
static const ::capnp::_::AlignedData<81> b_84ff286cd00a3ed4 = {
{ 0, 0, 0, 0, 5, 0, 6, 0,
212, 62, 10, 208, 108, 40, 255, 132,
23, 0, 0, 0, 3, 0, 0, 0,
215, 238, 63, 152, 54, 8, 99, 184,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0,
21, 0, 0, 0, 34, 1, 0, 0,
37, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
33, 0, 0, 0, 135, 0, 0, 0,
249, 0, 0, 0, 7, 0, 0, 0,
249, 0, 0, 0, 23, 0, 0, 0,
99, 97, 112, 110, 112, 47, 112, 101,
114, 115, 105, 115, 116, 101, 110, 116,
46, 99, 97, 112, 110, 112, 58, 82,
101, 97, 108, 109, 71, 97, 116, 101,
119, 97, 121, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 1, 0,
8, 0, 0, 0, 3, 0, 5, 0,
0, 0, 0, 0, 0, 0, 0, 0,
77, 87, 9, 57, 29, 204, 194, 240,
191, 239, 64, 140, 193, 72, 104, 183,
49, 0, 0, 0, 58, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
44, 0, 0, 0, 0, 0, 1, 0,
60, 0, 0, 0, 0, 0, 1, 0,
105, 0, 0, 0, 7, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0,
170, 163, 45, 72, 139, 161, 175, 236,
191, 239, 64, 140, 193, 72, 104, 183,
93, 0, 0, 0, 58, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
88, 0, 0, 0, 0, 0, 1, 0,
104, 0, 0, 0, 0, 0, 1, 0,
149, 0, 0, 0, 7, 0, 0, 0,
105, 109, 112, 111, 114, 116, 0, 0,
1, 0, 0, 0, 31, 0, 0, 0,
4, 0, 0, 0, 2, 0, 1, 0,
212, 62, 10, 208, 108, 40, 255, 132,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 31, 0, 0, 0,
4, 0, 0, 0, 2, 0, 1, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 23, 0, 0, 0,
4, 0, 0, 0, 1, 0, 1, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 1, 0,
18, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0,
212, 62, 10, 208, 108, 40, 255, 132,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0,
101, 120, 112, 111, 114, 116, 0, 0,
1, 0, 0, 0, 31, 0, 0, 0,
4, 0, 0, 0, 2, 0, 1, 0,
212, 62, 10, 208, 108, 40, 255, 132,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 31, 0, 0, 0,
4, 0, 0, 0, 2, 0, 1, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 23, 0, 0, 0,
4, 0, 0, 0, 1, 0, 1, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 1, 0,
18, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 0,
212, 62, 10, 208, 108, 40, 255, 132,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0, 1, 0,
8, 0, 0, 0, 0, 0, 1, 0,
5, 0, 0, 0, 98, 0, 0, 0,
9, 0, 0, 0, 98, 0, 0, 0,
73, 110, 116, 101, 114, 110, 97, 108,
82, 101, 102, 0, 0, 0, 0, 0,
69, 120, 116, 101, 114, 110, 97, 108,
82, 101, 102, 0, 0, 0, 0, 0, }
};
::capnp::word const* const bp_84ff286cd00a3ed4 = b_84ff286cd00a3ed4.words;
#if !CAPNP_LITE
static const ::capnp::_::RawSchema* const d_84ff286cd00a3ed4[] = {
&s_b76848c18c40efbf,
&s_ecafa18b482da3aa,
&s_f0c2cc1d3909574d,
};
static const uint16_t m_84ff286cd00a3ed4[] = {1, 0};
const ::capnp::_::RawBrandedSchema::Dependency bd_84ff286cd00a3ed4[] = {
{ 33554432, ::capnp::RealmGateway<>::ImportParams::_capnpPrivate::brand },
{ 33554433, ::capnp::RealmGateway<>::ExportParams::_capnpPrivate::brand },
{ 50331648, ::capnp::Persistent<>::SaveResults::_capnpPrivate::brand },
{ 50331649, ::capnp::Persistent<>::SaveResults::_capnpPrivate::brand },
};
const ::capnp::_::RawSchema s_84ff286cd00a3ed4 = {
0x84ff286cd00a3ed4, b_84ff286cd00a3ed4.words, 81, d_84ff286cd00a3ed4, m_84ff286cd00a3ed4,
3, 2, nullptr, nullptr, nullptr, { &s_84ff286cd00a3ed4, nullptr, bd_84ff286cd00a3ed4, 0, sizeof(bd_84ff286cd00a3ed4) / sizeof(bd_84ff286cd00a3ed4[0]), nullptr }
};
#endif // !CAPNP_LITE
static const ::capnp::_::AlignedData<74> b_f0c2cc1d3909574d = {
{ 0, 0, 0, 0, 5, 0, 6, 0,
77, 87, 9, 57, 29, 204, 194, 240,
36, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
2, 0, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0,
21, 0, 0, 0, 146, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
37, 0, 0, 0, 119, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
99, 97, 112, 110, 112, 47, 112, 101,
114, 115, 105, 115, 116, 101, 110, 116,
46, 99, 97, 112, 110, 112, 58, 82,
101, 97, 108, 109, 71, 97, 116, 101,
119, 97, 121, 46, 105, 109, 112, 111,
114, 116, 36, 80, 97, 114, 97, 109,
115, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 3, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
41, 0, 0, 0, 34, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
36, 0, 0, 0, 3, 0, 1, 0,
96, 0, 0, 0, 2, 0, 1, 0,
1, 0, 0, 0, 1, 0, 0, 0,
0, 0, 1, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
93, 0, 0, 0, 58, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
88, 0, 0, 0, 3, 0, 1, 0,
148, 0, 0, 0, 2, 0, 1, 0,
99, 97, 112, 0, 0, 0, 0, 0,
17, 0, 0, 0, 0, 0, 0, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 31, 0, 0, 0,
4, 0, 0, 0, 2, 0, 1, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 23, 0, 0, 0,
4, 0, 0, 0, 1, 0, 1, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 1, 0,
18, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 0,
212, 62, 10, 208, 108, 40, 255, 132,
0, 0, 0, 0, 0, 0, 0, 0,
17, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
112, 97, 114, 97, 109, 115, 0, 0,
16, 0, 0, 0, 0, 0, 0, 0,
165, 115, 48, 24, 89, 186, 111, 247,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 31, 0, 0, 0,
4, 0, 0, 0, 2, 0, 1, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 23, 0, 0, 0,
4, 0, 0, 0, 1, 0, 1, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 1, 0,
18, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0,
212, 62, 10, 208, 108, 40, 255, 132,
0, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, }
};
::capnp::word const* const bp_f0c2cc1d3909574d = b_f0c2cc1d3909574d.words;
#if !CAPNP_LITE
static const ::capnp::_::RawSchema* const d_f0c2cc1d3909574d[] = {
&s_c8cb212fcd9f5691,
&s_f76fba59183073a5,
};
static const uint16_t m_f0c2cc1d3909574d[] = {0, 1};
static const uint16_t i_f0c2cc1d3909574d[] = {0, 1};
const ::capnp::_::RawBrandedSchema::Dependency bd_f0c2cc1d3909574d[] = {
{ 16777216, ::capnp::Persistent<>::_capnpPrivate::brand },
{ 16777217, ::capnp::Persistent<>::SaveParams::_capnpPrivate::brand },
};
const ::capnp::_::RawSchema s_f0c2cc1d3909574d = {
0xf0c2cc1d3909574d, b_f0c2cc1d3909574d.words, 74, d_f0c2cc1d3909574d, m_f0c2cc1d3909574d,
2, 2, i_f0c2cc1d3909574d, nullptr, nullptr, { &s_f0c2cc1d3909574d, nullptr, bd_f0c2cc1d3909574d, 0, sizeof(bd_f0c2cc1d3909574d) / sizeof(bd_f0c2cc1d3909574d[0]), nullptr }
};
#endif // !CAPNP_LITE
static const ::capnp::_::AlignedData<74> b_ecafa18b482da3aa = {
{ 0, 0, 0, 0, 5, 0, 6, 0,
170, 163, 45, 72, 139, 161, 175, 236,
36, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
2, 0, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0,
21, 0, 0, 0, 146, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
37, 0, 0, 0, 119, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
99, 97, 112, 110, 112, 47, 112, 101,
114, 115, 105, 115, 116, 101, 110, 116,
46, 99, 97, 112, 110, 112, 58, 82,
101, 97, 108, 109, 71, 97, 116, 101,
119, 97, 121, 46, 101, 120, 112, 111,
114, 116, 36, 80, 97, 114, 97, 109,
115, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 3, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
41, 0, 0, 0, 34, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
36, 0, 0, 0, 3, 0, 1, 0,
96, 0, 0, 0, 2, 0, 1, 0,
1, 0, 0, 0, 1, 0, 0, 0,
0, 0, 1, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
93, 0, 0, 0, 58, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
88, 0, 0, 0, 3, 0, 1, 0,
148, 0, 0, 0, 2, 0, 1, 0,
99, 97, 112, 0, 0, 0, 0, 0,
17, 0, 0, 0, 0, 0, 0, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 31, 0, 0, 0,
4, 0, 0, 0, 2, 0, 1, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 23, 0, 0, 0,
4, 0, 0, 0, 1, 0, 1, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 1, 0,
18, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0,
212, 62, 10, 208, 108, 40, 255, 132,
0, 0, 0, 0, 0, 0, 0, 0,
17, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
112, 97, 114, 97, 109, 115, 0, 0,
16, 0, 0, 0, 0, 0, 0, 0,
165, 115, 48, 24, 89, 186, 111, 247,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 31, 0, 0, 0,
4, 0, 0, 0, 2, 0, 1, 0,
145, 86, 159, 205, 47, 33, 203, 200,
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 23, 0, 0, 0,
4, 0, 0, 0, 1, 0, 1, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 1, 0,
18, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 0,
212, 62, 10, 208, 108, 40, 255, 132,
0, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, }
};
::capnp::word const* const bp_ecafa18b482da3aa = b_ecafa18b482da3aa.words;
#if !CAPNP_LITE
static const uint16_t m_f8d831c87ab7a90f[] = {0};
static const uint16_t i_f8d831c87ab7a90f[] = {0};
const ::capnp::_::RawBrandedSchema::Dependency bd_f8d831c87ab7a90f[] = {
static const ::capnp::_::RawSchema* const d_ecafa18b482da3aa[] = {
&s_c8cb212fcd9f5691,
&s_f76fba59183073a5,
};
static const uint16_t m_ecafa18b482da3aa[] = {0, 1};
static const uint16_t i_ecafa18b482da3aa[] = {0, 1};
const ::capnp::_::RawBrandedSchema::Dependency bd_ecafa18b482da3aa[] = {
{ 16777216, ::capnp::Persistent<>::_capnpPrivate::brand },
{ 16777217, ::capnp::Persistent<>::SaveParams::_capnpPrivate::brand },
};
const ::capnp::_::RawSchema s_f8d831c87ab7a90f = {
0xf8d831c87ab7a90f, b_f8d831c87ab7a90f.words, 35, nullptr, m_f8d831c87ab7a90f,
0, 1, i_f8d831c87ab7a90f, nullptr, nullptr, { &s_f8d831c87ab7a90f, nullptr, bd_f8d831c87ab7a90f, 0, sizeof(bd_f8d831c87ab7a90f) / sizeof(bd_f8d831c87ab7a90f[0]), nullptr }
const ::capnp::_::RawSchema s_ecafa18b482da3aa = {
0xecafa18b482da3aa, b_ecafa18b482da3aa.words, 74, d_ecafa18b482da3aa, m_ecafa18b482da3aa,
2, 2, i_ecafa18b482da3aa, nullptr, nullptr, { &s_ecafa18b482da3aa, nullptr, bd_ecafa18b482da3aa, 0, sizeof(bd_ecafa18b482da3aa) / sizeof(bd_ecafa18b482da3aa[0]), nullptr }
};
#endif // !CAPNP_LITE
} // namespace schemas
......
......@@ -18,8 +18,11 @@ namespace capnp {
namespace schemas {
CAPNP_DECLARE_SCHEMA(c8cb212fcd9f5691);
CAPNP_DECLARE_SCHEMA(c98603600e7ffbf6);
CAPNP_DECLARE_SCHEMA(f8d831c87ab7a90f);
CAPNP_DECLARE_SCHEMA(f76fba59183073a5);
CAPNP_DECLARE_SCHEMA(b76848c18c40efbf);
CAPNP_DECLARE_SCHEMA(84ff286cd00a3ed4);
CAPNP_DECLARE_SCHEMA(f0c2cc1d3909574d);
CAPNP_DECLARE_SCHEMA(ecafa18b482da3aa);
} // namespace schemas
} // namespace capnp
......@@ -49,7 +52,7 @@ struct Persistent<SturdyRef>::SaveParams {
class Builder;
class Pipeline;
CAPNP_DECLARE_TEMPLATE_STRUCT(c98603600e7ffbf6, 0, 0, SturdyRef);
CAPNP_DECLARE_TEMPLATE_STRUCT(f76fba59183073a5, 0, 0, SturdyRef);
};
template <typename SturdyRef>
......@@ -60,7 +63,44 @@ struct Persistent<SturdyRef>::SaveResults {
class Builder;
class Pipeline;
CAPNP_DECLARE_TEMPLATE_STRUCT(f8d831c87ab7a90f, 0, 1, SturdyRef);
CAPNP_DECLARE_TEMPLATE_STRUCT(b76848c18c40efbf, 0, 1, SturdyRef);
};
template <typename InternalRef = ::capnp::AnyPointer, typename ExternalRef = ::capnp::AnyPointer>
struct RealmGateway {
RealmGateway() = delete;
#if !CAPNP_LITE
class Client;
class Server;
#endif // !CAPNP_LITE
struct ImportParams;
struct ExportParams;
CAPNP_DECLARE_TEMPLATE_INTERFACE(84ff286cd00a3ed4, InternalRef, ExternalRef);
};
template <typename InternalRef, typename ExternalRef>
struct RealmGateway<InternalRef, ExternalRef>::ImportParams {
ImportParams() = delete;
class Reader;
class Builder;
class Pipeline;
CAPNP_DECLARE_TEMPLATE_STRUCT(f0c2cc1d3909574d, 0, 2, InternalRef, ExternalRef);
};
template <typename InternalRef, typename ExternalRef>
struct RealmGateway<InternalRef, ExternalRef>::ExportParams {
ExportParams() = delete;
class Reader;
class Builder;
class Pipeline;
CAPNP_DECLARE_TEMPLATE_STRUCT(ecafa18b482da3aa, 0, 2, InternalRef, ExternalRef);
};
// =======================================================================================
......@@ -103,9 +143,7 @@ public:
override;
protected:
typedef typename ::capnp::Persistent<SturdyRef>::SaveParams SaveParams;
typedef typename ::capnp::Persistent<SturdyRef>::SaveResults SaveResults;
typedef ::capnp::CallContext<SaveParams, SaveResults> SaveContext;
typedef ::capnp::CallContext<typename ::capnp::Persistent<SturdyRef>::SaveParams, typename ::capnp::Persistent<SturdyRef>::SaveResults> SaveContext;
virtual ::kj::Promise<void> save(SaveContext context);
::kj::Promise<void> dispatchCallInternal(uint16_t methodId,
......@@ -179,6 +217,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -262,6 +301,255 @@ public:
inline ::capnp::PipelineFor<SturdyRef> getSturdyRef();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
#endif // !CAPNP_LITE
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
class RealmGateway<InternalRef, ExternalRef>::Client
: public virtual ::capnp::Capability::Client {
public:
typedef RealmGateway<InternalRef, ExternalRef> Calls;
typedef RealmGateway<InternalRef, ExternalRef> Reads;
Client(decltype(nullptr));
explicit Client(::kj::Own< ::capnp::ClientHook>&& hook);
template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Server*>()>>
Client(::kj::Own<_t>&& server);
template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Client*>()>>
Client(::kj::Promise<_t>&& promise);
Client(::kj::Exception&& exception);
Client(Client&) = default;
Client(Client&&) = default;
Client& operator=(Client& other);
Client& operator=(Client&& other);
::capnp::Request<typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ImportParams, typename ::capnp::Persistent<InternalRef>::SaveResults> importRequest(
::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
::capnp::Request<typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ExportParams, typename ::capnp::Persistent<ExternalRef>::SaveResults> exportRequest(
::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
protected:
Client() = default;
};
template <typename InternalRef, typename ExternalRef>
class RealmGateway<InternalRef, ExternalRef>::Server
: public virtual ::capnp::Capability::Server {
public:
typedef RealmGateway<InternalRef, ExternalRef> Serves;
::kj::Promise<void> dispatchCall(uint64_t interfaceId, uint16_t methodId,
::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context)
override;
protected:
typedef typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ImportParams ImportParams;
typedef ::capnp::CallContext<ImportParams, typename ::capnp::Persistent<InternalRef>::SaveResults> ImportContext;
virtual ::kj::Promise<void> import(ImportContext context);
typedef typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ExportParams ExportParams;
typedef ::capnp::CallContext<ExportParams, typename ::capnp::Persistent<ExternalRef>::SaveResults> ExportContext;
virtual ::kj::Promise<void> export_(ExportContext context);
::kj::Promise<void> dispatchCallInternal(uint16_t methodId,
::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context);
};
#endif // !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
class RealmGateway<InternalRef, ExternalRef>::ImportParams::Reader {
public:
typedef ImportParams Reads;
Reader() = default;
inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
inline ::capnp::MessageSize totalSize() const {
return _reader.totalSize().asPublic();
}
#if !CAPNP_LITE
inline ::kj::StringTree toString() const {
return ::capnp::_::structString(_reader, *_capnpPrivate::brand);
}
#endif // !CAPNP_LITE
inline bool hasCap() const;
#if !CAPNP_LITE
inline typename ::capnp::Persistent<ExternalRef>::Client getCap() const;
#endif // !CAPNP_LITE
inline bool hasParams() const;
inline typename ::capnp::Persistent<InternalRef>::SaveParams::Reader getParams() const;
private:
::capnp::_::StructReader _reader;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
template <typename, ::capnp::Kind>
friend struct ::capnp::_::PointerHelpers;
template <typename, ::capnp::Kind>
friend struct ::capnp::List;
friend class ::capnp::MessageBuilder;
friend class ::capnp::Orphanage;
};
template <typename InternalRef, typename ExternalRef>
class RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder {
public:
typedef ImportParams Builds;
Builder() = delete; // Deleted to discourage incorrect usage.
// You can explicitly initialize to nullptr instead.
inline Builder(decltype(nullptr)) {}
inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
inline operator Reader() const { return Reader(_builder.asReader()); }
inline Reader asReader() const { return *this; }
inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
#if !CAPNP_LITE
inline ::kj::StringTree toString() const { return asReader().toString(); }
#endif // !CAPNP_LITE
inline bool hasCap();
#if !CAPNP_LITE
inline typename ::capnp::Persistent<ExternalRef>::Client getCap();
inline void setCap(typename ::capnp::Persistent<ExternalRef>::Client&& value);
inline void setCap(typename ::capnp::Persistent<ExternalRef>::Client& value);
inline void adoptCap(::capnp::Orphan< ::capnp::Persistent<ExternalRef>>&& value);
inline ::capnp::Orphan< ::capnp::Persistent<ExternalRef>> disownCap();
#endif // !CAPNP_LITE
inline bool hasParams();
inline typename ::capnp::Persistent<InternalRef>::SaveParams::Builder getParams();
inline void setParams(typename ::capnp::Persistent<InternalRef>::SaveParams::Reader value);
inline typename ::capnp::Persistent<InternalRef>::SaveParams::Builder initParams();
inline void adoptParams(::capnp::Orphan<typename ::capnp::Persistent<InternalRef>::SaveParams>&& value);
inline ::capnp::Orphan<typename ::capnp::Persistent<InternalRef>::SaveParams> disownParams();
private:
::capnp::_::StructBuilder _builder;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
friend class ::capnp::Orphanage;
};
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
class RealmGateway<InternalRef, ExternalRef>::ImportParams::Pipeline {
public:
typedef ImportParams Pipelines;
inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
: _typeless(kj::mv(typeless)) {}
inline typename ::capnp::Persistent<ExternalRef>::Client getCap();
inline typename ::capnp::Persistent<InternalRef>::SaveParams::Pipeline getParams();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
#endif // !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
class RealmGateway<InternalRef, ExternalRef>::ExportParams::Reader {
public:
typedef ExportParams Reads;
Reader() = default;
inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
inline ::capnp::MessageSize totalSize() const {
return _reader.totalSize().asPublic();
}
#if !CAPNP_LITE
inline ::kj::StringTree toString() const {
return ::capnp::_::structString(_reader, *_capnpPrivate::brand);
}
#endif // !CAPNP_LITE
inline bool hasCap() const;
#if !CAPNP_LITE
inline typename ::capnp::Persistent<InternalRef>::Client getCap() const;
#endif // !CAPNP_LITE
inline bool hasParams() const;
inline typename ::capnp::Persistent<ExternalRef>::SaveParams::Reader getParams() const;
private:
::capnp::_::StructReader _reader;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
template <typename, ::capnp::Kind>
friend struct ::capnp::_::PointerHelpers;
template <typename, ::capnp::Kind>
friend struct ::capnp::List;
friend class ::capnp::MessageBuilder;
friend class ::capnp::Orphanage;
};
template <typename InternalRef, typename ExternalRef>
class RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder {
public:
typedef ExportParams Builds;
Builder() = delete; // Deleted to discourage incorrect usage.
// You can explicitly initialize to nullptr instead.
inline Builder(decltype(nullptr)) {}
inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
inline operator Reader() const { return Reader(_builder.asReader()); }
inline Reader asReader() const { return *this; }
inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
#if !CAPNP_LITE
inline ::kj::StringTree toString() const { return asReader().toString(); }
#endif // !CAPNP_LITE
inline bool hasCap();
#if !CAPNP_LITE
inline typename ::capnp::Persistent<InternalRef>::Client getCap();
inline void setCap(typename ::capnp::Persistent<InternalRef>::Client&& value);
inline void setCap(typename ::capnp::Persistent<InternalRef>::Client& value);
inline void adoptCap(::capnp::Orphan< ::capnp::Persistent<InternalRef>>&& value);
inline ::capnp::Orphan< ::capnp::Persistent<InternalRef>> disownCap();
#endif // !CAPNP_LITE
inline bool hasParams();
inline typename ::capnp::Persistent<ExternalRef>::SaveParams::Builder getParams();
inline void setParams(typename ::capnp::Persistent<ExternalRef>::SaveParams::Reader value);
inline typename ::capnp::Persistent<ExternalRef>::SaveParams::Builder initParams();
inline void adoptParams(::capnp::Orphan<typename ::capnp::Persistent<ExternalRef>::SaveParams>&& value);
inline ::capnp::Orphan<typename ::capnp::Persistent<ExternalRef>::SaveParams> disownParams();
private:
::capnp::_::StructBuilder _builder;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
friend class ::capnp::Orphanage;
};
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
class RealmGateway<InternalRef, ExternalRef>::ExportParams::Pipeline {
public:
typedef ExportParams Pipelines;
inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
: _typeless(kj::mv(typeless)) {}
inline typename ::capnp::Persistent<InternalRef>::Client getCap();
inline typename ::capnp::Persistent<ExternalRef>::SaveParams::Pipeline getParams();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -301,7 +589,7 @@ inline typename ::capnp::Persistent<SturdyRef>::Client& Persistent<SturdyRef>::
#endif // !CAPNP_LITE
CAPNP_DEFINE_TEMPLATE_STRUCT(Persistent<SturdyRef>::SaveParams, template <typename SturdyRef>
, c98603600e7ffbf6, {
, f76fba59183073a5, {
{ 0xc8cb212fcd9f5691 CAPNP_COMMA brandBindings + 0 CAPNP_COMMA 1 CAPNP_COMMA false} CAPNP_COMMA
}, {
::capnp::_::brandBindingFor<SturdyRef>() CAPNP_COMMA
......@@ -359,7 +647,7 @@ inline ::capnp::Orphan<SturdyRef> Persistent<SturdyRef>::SaveResults::Builder::d
}
CAPNP_DEFINE_TEMPLATE_STRUCT(Persistent<SturdyRef>::SaveResults, template <typename SturdyRef>
, f8d831c87ab7a90f, {
, b76848c18c40efbf, {
{ 0xc8cb212fcd9f5691 CAPNP_COMMA brandBindings + 0 CAPNP_COMMA 1 CAPNP_COMMA false} CAPNP_COMMA
}, {
::capnp::_::brandBindingFor<SturdyRef>() CAPNP_COMMA
......@@ -414,6 +702,308 @@ CAPNP_DEFINE_TEMPLATE_INTERFACE(Persistent<SturdyRef>, template <typename Sturdy
{ 33554432 CAPNP_COMMA ::capnp::Persistent<SturdyRef>::SaveParams::_capnpPrivate::brand } CAPNP_COMMA
{ 50331648 CAPNP_COMMA ::capnp::Persistent<SturdyRef>::SaveResults::_capnpPrivate::brand } CAPNP_COMMA
});
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline RealmGateway<InternalRef, ExternalRef>::Client::Client(decltype(nullptr))
: ::capnp::Capability::Client(nullptr) {}
template <typename InternalRef, typename ExternalRef>
inline RealmGateway<InternalRef, ExternalRef>::Client::Client(
::kj::Own< ::capnp::ClientHook>&& hook)
: ::capnp::Capability::Client(::kj::mv(hook)) {}
template <typename InternalRef, typename ExternalRef>
template <typename _t, typename>
inline RealmGateway<InternalRef, ExternalRef>::Client::Client(::kj::Own<_t>&& server)
: ::capnp::Capability::Client(::kj::mv(server)) {}
template <typename InternalRef, typename ExternalRef>
template <typename _t, typename>
inline RealmGateway<InternalRef, ExternalRef>::Client::Client(::kj::Promise<_t>&& promise)
: ::capnp::Capability::Client(::kj::mv(promise)) {}
template <typename InternalRef, typename ExternalRef>
inline RealmGateway<InternalRef, ExternalRef>::Client::Client(::kj::Exception&& exception)
: ::capnp::Capability::Client(::kj::mv(exception)) {}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::RealmGateway<InternalRef, ExternalRef>::Client& RealmGateway<InternalRef, ExternalRef>::Client::operator=(Client& other) {
::capnp::Capability::Client::operator=(other);
return *this;
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::RealmGateway<InternalRef, ExternalRef>::Client& RealmGateway<InternalRef, ExternalRef>::Client::operator=(Client&& other) {
::capnp::Capability::Client::operator=(kj::mv(other));
return *this;
}
#endif // !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline bool RealmGateway<InternalRef, ExternalRef>::ImportParams::Reader::hasCap() const {
return !_reader.getPointerField(0 * ::capnp::POINTERS).isNull();
}
template <typename InternalRef, typename ExternalRef>
inline bool RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::hasCap() {
return !_builder.getPointerField(0 * ::capnp::POINTERS).isNull();
}
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<ExternalRef>::Client RealmGateway<InternalRef, ExternalRef>::ImportParams::Reader::getCap() const {
return ::capnp::_::PointerHelpers< ::capnp::Persistent<ExternalRef>>::get(
_reader.getPointerField(0 * ::capnp::POINTERS));
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<ExternalRef>::Client RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::getCap() {
return ::capnp::_::PointerHelpers< ::capnp::Persistent<ExternalRef>>::get(
_builder.getPointerField(0 * ::capnp::POINTERS));
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<ExternalRef>::Client RealmGateway<InternalRef, ExternalRef>::ImportParams::Pipeline::getCap() {
return typename ::capnp::Persistent<ExternalRef>::Client(_typeless.getPointerField(0).asCap());
}
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::setCap(typename ::capnp::Persistent<ExternalRef>::Client&& cap) {
::capnp::_::PointerHelpers< ::capnp::Persistent<ExternalRef>>::set(
_builder.getPointerField(0 * ::capnp::POINTERS), kj::mv(cap));
}
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::setCap(typename ::capnp::Persistent<ExternalRef>::Client& cap) {
::capnp::_::PointerHelpers< ::capnp::Persistent<ExternalRef>>::set(
_builder.getPointerField(0 * ::capnp::POINTERS), cap);
}
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::adoptCap(
::capnp::Orphan< ::capnp::Persistent<ExternalRef>>&& value) {
::capnp::_::PointerHelpers< ::capnp::Persistent<ExternalRef>>::adopt(
_builder.getPointerField(0 * ::capnp::POINTERS), kj::mv(value));
}
template <typename InternalRef, typename ExternalRef>
inline ::capnp::Orphan< ::capnp::Persistent<ExternalRef>> RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::disownCap() {
return ::capnp::_::PointerHelpers< ::capnp::Persistent<ExternalRef>>::disown(
_builder.getPointerField(0 * ::capnp::POINTERS));
}
#endif // !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline bool RealmGateway<InternalRef, ExternalRef>::ImportParams::Reader::hasParams() const {
return !_reader.getPointerField(1 * ::capnp::POINTERS).isNull();
}
template <typename InternalRef, typename ExternalRef>
inline bool RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::hasParams() {
return !_builder.getPointerField(1 * ::capnp::POINTERS).isNull();
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<InternalRef>::SaveParams::Reader RealmGateway<InternalRef, ExternalRef>::ImportParams::Reader::getParams() const {
return ::capnp::_::PointerHelpers<typename ::capnp::Persistent<InternalRef>::SaveParams>::get(
_reader.getPointerField(1 * ::capnp::POINTERS));
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<InternalRef>::SaveParams::Builder RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::getParams() {
return ::capnp::_::PointerHelpers<typename ::capnp::Persistent<InternalRef>::SaveParams>::get(
_builder.getPointerField(1 * ::capnp::POINTERS));
}
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<InternalRef>::SaveParams::Pipeline RealmGateway<InternalRef, ExternalRef>::ImportParams::Pipeline::getParams() {
return typename ::capnp::Persistent<InternalRef>::SaveParams::Pipeline(_typeless.getPointerField(1));
}
#endif // !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::setParams(typename ::capnp::Persistent<InternalRef>::SaveParams::Reader value) {
::capnp::_::PointerHelpers<typename ::capnp::Persistent<InternalRef>::SaveParams>::set(
_builder.getPointerField(1 * ::capnp::POINTERS), value);
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<InternalRef>::SaveParams::Builder RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::initParams() {
return ::capnp::_::PointerHelpers<typename ::capnp::Persistent<InternalRef>::SaveParams>::init(
_builder.getPointerField(1 * ::capnp::POINTERS));
}
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::adoptParams(
::capnp::Orphan<typename ::capnp::Persistent<InternalRef>::SaveParams>&& value) {
::capnp::_::PointerHelpers<typename ::capnp::Persistent<InternalRef>::SaveParams>::adopt(
_builder.getPointerField(1 * ::capnp::POINTERS), kj::mv(value));
}
template <typename InternalRef, typename ExternalRef>
inline ::capnp::Orphan<typename ::capnp::Persistent<InternalRef>::SaveParams> RealmGateway<InternalRef, ExternalRef>::ImportParams::Builder::disownParams() {
return ::capnp::_::PointerHelpers<typename ::capnp::Persistent<InternalRef>::SaveParams>::disown(
_builder.getPointerField(1 * ::capnp::POINTERS));
}
CAPNP_DEFINE_TEMPLATE_STRUCT(RealmGateway<InternalRef CAPNP_COMMA ExternalRef>::ImportParams, template <typename InternalRef CAPNP_COMMA typename ExternalRef>
, f0c2cc1d3909574d, {
{ 0x84ff286cd00a3ed4 CAPNP_COMMA brandBindings + 0 CAPNP_COMMA 2 CAPNP_COMMA false} CAPNP_COMMA
}, {
::capnp::_::brandBindingFor<InternalRef>() CAPNP_COMMA
::capnp::_::brandBindingFor<ExternalRef>() CAPNP_COMMA
}, {
{ 16777216 CAPNP_COMMA ::capnp::Persistent<ExternalRef>::_capnpPrivate::brand } CAPNP_COMMA
{ 16777217 CAPNP_COMMA ::capnp::Persistent<InternalRef>::SaveParams::_capnpPrivate::brand } CAPNP_COMMA
});
template <typename InternalRef, typename ExternalRef>
inline bool RealmGateway<InternalRef, ExternalRef>::ExportParams::Reader::hasCap() const {
return !_reader.getPointerField(0 * ::capnp::POINTERS).isNull();
}
template <typename InternalRef, typename ExternalRef>
inline bool RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::hasCap() {
return !_builder.getPointerField(0 * ::capnp::POINTERS).isNull();
}
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<InternalRef>::Client RealmGateway<InternalRef, ExternalRef>::ExportParams::Reader::getCap() const {
return ::capnp::_::PointerHelpers< ::capnp::Persistent<InternalRef>>::get(
_reader.getPointerField(0 * ::capnp::POINTERS));
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<InternalRef>::Client RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::getCap() {
return ::capnp::_::PointerHelpers< ::capnp::Persistent<InternalRef>>::get(
_builder.getPointerField(0 * ::capnp::POINTERS));
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<InternalRef>::Client RealmGateway<InternalRef, ExternalRef>::ExportParams::Pipeline::getCap() {
return typename ::capnp::Persistent<InternalRef>::Client(_typeless.getPointerField(0).asCap());
}
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::setCap(typename ::capnp::Persistent<InternalRef>::Client&& cap) {
::capnp::_::PointerHelpers< ::capnp::Persistent<InternalRef>>::set(
_builder.getPointerField(0 * ::capnp::POINTERS), kj::mv(cap));
}
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::setCap(typename ::capnp::Persistent<InternalRef>::Client& cap) {
::capnp::_::PointerHelpers< ::capnp::Persistent<InternalRef>>::set(
_builder.getPointerField(0 * ::capnp::POINTERS), cap);
}
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::adoptCap(
::capnp::Orphan< ::capnp::Persistent<InternalRef>>&& value) {
::capnp::_::PointerHelpers< ::capnp::Persistent<InternalRef>>::adopt(
_builder.getPointerField(0 * ::capnp::POINTERS), kj::mv(value));
}
template <typename InternalRef, typename ExternalRef>
inline ::capnp::Orphan< ::capnp::Persistent<InternalRef>> RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::disownCap() {
return ::capnp::_::PointerHelpers< ::capnp::Persistent<InternalRef>>::disown(
_builder.getPointerField(0 * ::capnp::POINTERS));
}
#endif // !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline bool RealmGateway<InternalRef, ExternalRef>::ExportParams::Reader::hasParams() const {
return !_reader.getPointerField(1 * ::capnp::POINTERS).isNull();
}
template <typename InternalRef, typename ExternalRef>
inline bool RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::hasParams() {
return !_builder.getPointerField(1 * ::capnp::POINTERS).isNull();
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<ExternalRef>::SaveParams::Reader RealmGateway<InternalRef, ExternalRef>::ExportParams::Reader::getParams() const {
return ::capnp::_::PointerHelpers<typename ::capnp::Persistent<ExternalRef>::SaveParams>::get(
_reader.getPointerField(1 * ::capnp::POINTERS));
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<ExternalRef>::SaveParams::Builder RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::getParams() {
return ::capnp::_::PointerHelpers<typename ::capnp::Persistent<ExternalRef>::SaveParams>::get(
_builder.getPointerField(1 * ::capnp::POINTERS));
}
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<ExternalRef>::SaveParams::Pipeline RealmGateway<InternalRef, ExternalRef>::ExportParams::Pipeline::getParams() {
return typename ::capnp::Persistent<ExternalRef>::SaveParams::Pipeline(_typeless.getPointerField(1));
}
#endif // !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::setParams(typename ::capnp::Persistent<ExternalRef>::SaveParams::Reader value) {
::capnp::_::PointerHelpers<typename ::capnp::Persistent<ExternalRef>::SaveParams>::set(
_builder.getPointerField(1 * ::capnp::POINTERS), value);
}
template <typename InternalRef, typename ExternalRef>
inline typename ::capnp::Persistent<ExternalRef>::SaveParams::Builder RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::initParams() {
return ::capnp::_::PointerHelpers<typename ::capnp::Persistent<ExternalRef>::SaveParams>::init(
_builder.getPointerField(1 * ::capnp::POINTERS));
}
template <typename InternalRef, typename ExternalRef>
inline void RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::adoptParams(
::capnp::Orphan<typename ::capnp::Persistent<ExternalRef>::SaveParams>&& value) {
::capnp::_::PointerHelpers<typename ::capnp::Persistent<ExternalRef>::SaveParams>::adopt(
_builder.getPointerField(1 * ::capnp::POINTERS), kj::mv(value));
}
template <typename InternalRef, typename ExternalRef>
inline ::capnp::Orphan<typename ::capnp::Persistent<ExternalRef>::SaveParams> RealmGateway<InternalRef, ExternalRef>::ExportParams::Builder::disownParams() {
return ::capnp::_::PointerHelpers<typename ::capnp::Persistent<ExternalRef>::SaveParams>::disown(
_builder.getPointerField(1 * ::capnp::POINTERS));
}
CAPNP_DEFINE_TEMPLATE_STRUCT(RealmGateway<InternalRef CAPNP_COMMA ExternalRef>::ExportParams, template <typename InternalRef CAPNP_COMMA typename ExternalRef>
, ecafa18b482da3aa, {
{ 0x84ff286cd00a3ed4 CAPNP_COMMA brandBindings + 0 CAPNP_COMMA 2 CAPNP_COMMA false} CAPNP_COMMA
}, {
::capnp::_::brandBindingFor<InternalRef>() CAPNP_COMMA
::capnp::_::brandBindingFor<ExternalRef>() CAPNP_COMMA
}, {
{ 16777216 CAPNP_COMMA ::capnp::Persistent<InternalRef>::_capnpPrivate::brand } CAPNP_COMMA
{ 16777217 CAPNP_COMMA ::capnp::Persistent<ExternalRef>::SaveParams::_capnpPrivate::brand } CAPNP_COMMA
});
#if !CAPNP_LITE
template <typename InternalRef, typename ExternalRef>
::capnp::Request<typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ImportParams, typename ::capnp::Persistent<InternalRef>::SaveResults>
RealmGateway<InternalRef, ExternalRef>::Client::importRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
return newCall<typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ImportParams, typename ::capnp::Persistent<InternalRef>::SaveResults>(
0x84ff286cd00a3ed4ull, 0, sizeHint);
}
template <typename InternalRef, typename ExternalRef>
::kj::Promise<void> RealmGateway<InternalRef, ExternalRef>::Server::import(ImportContext) {
return ::capnp::Capability::Server::internalUnimplemented(
"capnp/persistent.capnp:RealmGateway", "import",
0x84ff286cd00a3ed4ull, 0);
}
template <typename InternalRef, typename ExternalRef>
::capnp::Request<typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ExportParams, typename ::capnp::Persistent<ExternalRef>::SaveResults>
RealmGateway<InternalRef, ExternalRef>::Client::exportRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
return newCall<typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ExportParams, typename ::capnp::Persistent<ExternalRef>::SaveResults>(
0x84ff286cd00a3ed4ull, 1, sizeHint);
}
template <typename InternalRef, typename ExternalRef>
::kj::Promise<void> RealmGateway<InternalRef, ExternalRef>::Server::export_(ExportContext) {
return ::capnp::Capability::Server::internalUnimplemented(
"capnp/persistent.capnp:RealmGateway", "export",
0x84ff286cd00a3ed4ull, 1);
}
template <typename InternalRef, typename ExternalRef>
::kj::Promise<void> RealmGateway<InternalRef, ExternalRef>::Server::dispatchCall(
uint64_t interfaceId, uint16_t methodId,
::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
switch (interfaceId) {
case 0x84ff286cd00a3ed4ull:
return dispatchCallInternal(methodId, context);
default:
return internalUnimplemented("capnp/persistent.capnp:RealmGateway", interfaceId);
}
}
template <typename InternalRef, typename ExternalRef>
::kj::Promise<void> RealmGateway<InternalRef, ExternalRef>::Server::dispatchCallInternal(
uint16_t methodId,
::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
switch (methodId) {
case 0:
return import(::capnp::Capability::Server::internalGetTypedContext<
typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ImportParams, typename ::capnp::Persistent<InternalRef>::SaveResults>(context));
case 1:
return export_(::capnp::Capability::Server::internalGetTypedContext<
typename ::capnp::RealmGateway<InternalRef, ExternalRef>::ExportParams, typename ::capnp::Persistent<ExternalRef>::SaveResults>(context));
default:
return ::capnp::Capability::Server::internalUnimplemented(
"capnp/persistent.capnp:RealmGateway",
0x84ff286cd00a3ed4ull, methodId);
}
}
#endif // !CAPNP_LITE
CAPNP_DEFINE_TEMPLATE_INTERFACE(RealmGateway<InternalRef CAPNP_COMMA ExternalRef>, template <typename InternalRef CAPNP_COMMA typename ExternalRef>
, 84ff286cd00a3ed4, {
{ 0x84ff286cd00a3ed4 CAPNP_COMMA brandBindings + 0 CAPNP_COMMA 2 CAPNP_COMMA false} CAPNP_COMMA
}, {
::capnp::_::brandBindingFor<InternalRef>() CAPNP_COMMA
::capnp::_::brandBindingFor<ExternalRef>() CAPNP_COMMA
}, {
{ 33554432 CAPNP_COMMA ::capnp::RealmGateway<InternalRef CAPNP_COMMA ExternalRef>::ImportParams::_capnpPrivate::brand } CAPNP_COMMA
{ 33554433 CAPNP_COMMA ::capnp::RealmGateway<InternalRef CAPNP_COMMA ExternalRef>::ExportParams::_capnpPrivate::brand } CAPNP_COMMA
{ 50331648 CAPNP_COMMA ::capnp::Persistent<InternalRef>::SaveResults::_capnpPrivate::brand } CAPNP_COMMA
{ 50331649 CAPNP_COMMA ::capnp::Persistent<ExternalRef>::SaveResults::_capnpPrivate::brand } CAPNP_COMMA
});
} // namespace
#endif // CAPNP_INCLUDED_b8630836983feed7_
......@@ -26,6 +26,7 @@
#define CAPNP_RPC_PRELUDE_H_
#include "capability.h"
#include "persistent.capnp.h"
namespace capnp {
......@@ -65,7 +66,8 @@ public:
class RpcSystemBase {
public:
RpcSystemBase(VatNetworkBase& network, kj::Maybe<Capability::Client> bootstrapInterface);
RpcSystemBase(VatNetworkBase& network, kj::Maybe<Capability::Client> bootstrapInterface,
kj::Maybe<RealmGateway<>::Client> gateway);
RpcSystemBase(VatNetworkBase& network, SturdyRefRestorerBase& restorer);
RpcSystemBase(RpcSystemBase&& other) noexcept;
~RpcSystemBase() noexcept(false);
......
......@@ -166,6 +166,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -239,6 +240,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -307,6 +309,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -375,6 +378,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -458,6 +462,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -543,6 +548,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......
......@@ -265,11 +265,12 @@ private:
class RpcConnectionState final: public kj::TaskSet::ErrorHandler, public kj::Refcounted {
public:
RpcConnectionState(kj::Maybe<Capability::Client> bootstrapInterface,
kj::Maybe<RealmGateway<>::Client> gateway,
kj::Maybe<SturdyRefRestorerBase&> restorer,
kj::Own<VatNetworkBase::Connection>&& connectionParam,
kj::Own<kj::PromiseFulfiller<void>>&& disconnectFulfiller)
: bootstrapInterface(kj::mv(bootstrapInterface)), restorer(restorer),
disconnectFulfiller(kj::mv(disconnectFulfiller)), tasks(*this) {
: bootstrapInterface(kj::mv(bootstrapInterface)), gateway(kj::mv(gateway)),
restorer(restorer), disconnectFulfiller(kj::mv(disconnectFulfiller)), tasks(*this) {
connection.init<Connected>(kj::mv(connectionParam));
tasks.add(messageLoop());
}
......@@ -513,6 +514,7 @@ private:
// OK, now we can define RpcConnectionState's member data.
kj::Maybe<Capability::Client> bootstrapInterface;
kj::Maybe<RealmGateway<>::Client> gateway;
kj::Maybe<SturdyRefRestorerBase&> restorer;
typedef kj::Own<VatNetworkBase::Connection> Connected;
......@@ -574,6 +576,28 @@ private:
Request<AnyPointer, AnyPointer> newCall(
uint64_t interfaceId, uint16_t methodId, kj::Maybe<MessageSize> sizeHint) override {
if (interfaceId == typeId<Persistent<>>() && methodId == 0) {
KJ_IF_MAYBE(g, connectionState->gateway) {
// Wait, this is a call to Persistent.save() and we need to translate it through our
// gateway.
//
// We pull a neat trick here: We actually end up returning a RequestHook for an import
// request on the gateway cap, but with the "root" of the request actually pointing
// to the "params" field of the real request.
sizeHint = sizeHint.map([](MessageSize hint) {
++hint.capCount;
hint.wordCount += sizeInWords<RealmGateway<>::ImportParams>();
});
auto request = g->importRequest(sizeHint);
request.setCap(Persistent<>::Client(addRef()));
return Request<AnyPointer, AnyPointer>(request.getParams(),
RequestHook::from(kj::mv(request)));
}
}
if (!connectionState->connection.is<Connected>()) {
return newBrokenRequest(kj::cp(connectionState->connection.get<Disconnected>()), sizeHint);
}
......@@ -594,6 +618,26 @@ private:
kj::Own<CallContextHook>&& context) override {
// Implement call() by copying params and results messages.
if (interfaceId == typeId<Persistent<>>() && methodId == 0) {
KJ_IF_MAYBE(g, connectionState->gateway) {
// Wait, this is a call to Persistent.save() and we need to translate it through our
// gateway.
auto params = context->getParams().getAs<Persistent<>::SaveParams>();
auto requestSize = params.totalSize();
++requestSize.capCount;
requestSize.wordCount += sizeInWords<RealmGateway<>::ImportParams>();
auto request = g->importRequest(requestSize);
request.setCap(Persistent<>::Client(addRef()));
request.setParams(params);
context->allowCancellation();
context->releaseParams();
return context->directTailCall(RequestHook::from(kj::mv(request)));
}
}
auto params = context->getParams();
auto request = newCall(interfaceId, methodId, params.targetSize());
......@@ -2090,10 +2134,10 @@ private:
answer.callContext = *context;
}
auto promiseAndPipeline = capability->call(
call.getInterfaceId(), call.getMethodId(), context->addRef());
auto promiseAndPipeline = startCall(
call.getInterfaceId(), call.getMethodId(), kj::mv(capability), context->addRef());
// Things may have changed -- in particular if call() immediately called
// Things may have changed -- in particular if startCall() immediately called
// context->directTailCall().
{
......@@ -2137,6 +2181,33 @@ private:
}
}
ClientHook::VoidPromiseAndPipeline startCall(
uint64_t interfaceId, uint64_t methodId,
kj::Own<ClientHook>&& capability, kj::Own<CallContextHook>&& context) {
if (interfaceId == typeId<Persistent<>>() && methodId == 0) {
KJ_IF_MAYBE(g, gateway) {
// Wait, this is a call to Persistent.save() and we need to translate it through our
// gateway.
auto params = context->getParams().getAs<Persistent<>::SaveParams>();
auto requestSize = params.totalSize();
++requestSize.capCount;
requestSize.wordCount += sizeInWords<RealmGateway<>::ExportParams>();
auto request = g->exportRequest(requestSize);
request.setCap(Persistent<>::Client(capability->addRef()));
request.setParams(params);
context->allowCancellation();
context->releaseParams();
return context->directTailCall(RequestHook::from(kj::mv(request)));
}
}
return capability->call(interfaceId, methodId, context->addRef());
}
kj::Maybe<kj::Own<ClientHook>> getMessageTarget(const rpc::MessageTarget::Reader& target) {
switch (target.which()) {
case rpc::MessageTarget::IMPORTED_CAP: {
......@@ -2470,8 +2541,10 @@ private:
class RpcSystemBase::Impl final: public kj::TaskSet::ErrorHandler {
public:
Impl(VatNetworkBase& network, kj::Maybe<Capability::Client> bootstrapInterface)
: network(network), bootstrapInterface(kj::mv(bootstrapInterface)), tasks(*this) {
Impl(VatNetworkBase& network, kj::Maybe<Capability::Client> bootstrapInterface,
kj::Maybe<RealmGateway<>::Client> gateway)
: network(network), bootstrapInterface(kj::mv(bootstrapInterface)),
gateway(kj::mv(gateway)), tasks(*this) {
tasks.add(acceptLoop());
}
Impl(VatNetworkBase& network, SturdyRefRestorerBase& restorer)
......@@ -2521,6 +2594,7 @@ public:
private:
VatNetworkBase& network;
kj::Maybe<Capability::Client> bootstrapInterface;
kj::Maybe<RealmGateway<>::Client> gateway;
kj::Maybe<SturdyRefRestorerBase&> restorer;
kj::TaskSet tasks;
......@@ -2539,7 +2613,8 @@ private:
connections.erase(connectionPtr);
}));
auto newState = kj::refcounted<RpcConnectionState>(
bootstrapInterface, restorer, kj::mv(connection), kj::mv(onDisconnect.fulfiller));
bootstrapInterface, gateway, restorer, kj::mv(connection),
kj::mv(onDisconnect.fulfiller));
RpcConnectionState& result = *newState;
connections.insert(std::make_pair(connectionPtr, kj::mv(newState)));
return result;
......@@ -2564,8 +2639,9 @@ private:
};
RpcSystemBase::RpcSystemBase(VatNetworkBase& network,
kj::Maybe<Capability::Client> bootstrapInterface)
: impl(kj::heap<Impl>(network, kj::mv(bootstrapInterface))) {}
kj::Maybe<Capability::Client> bootstrapInterface,
kj::Maybe<RealmGateway<>::Client> gateway)
: impl(kj::heap<Impl>(network, kj::mv(bootstrapInterface), kj::mv(gateway))) {}
RpcSystemBase::RpcSystemBase(VatNetworkBase& network, SturdyRefRestorerBase& restorer)
: impl(kj::heap<Impl>(network, restorer)) {}
RpcSystemBase::RpcSystemBase(RpcSystemBase&& other) noexcept = default;
......
......@@ -537,6 +537,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -617,6 +618,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -733,6 +735,7 @@ public:
inline SendResultsTo::Pipeline getSendResultsTo();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -826,6 +829,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -960,6 +964,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1038,6 +1043,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1137,6 +1143,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1215,6 +1222,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1300,6 +1308,7 @@ public:
inline Context::Pipeline getContext();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1398,6 +1407,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1489,6 +1499,7 @@ public:
inline ::capnp::rpc::MessageTarget::Pipeline getTarget();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1574,6 +1585,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1665,6 +1677,7 @@ public:
inline ::capnp::rpc::MessageTarget::Pipeline getTarget();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1754,6 +1767,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1839,6 +1853,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1961,6 +1976,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2044,6 +2060,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2128,6 +2145,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2208,6 +2226,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2296,6 +2315,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......
......@@ -53,7 +53,8 @@ public:
typename ThirdPartyCapId, typename JoinResult>
RpcSystem(
VatNetwork<VatId, ProvisionId, RecipientId, ThirdPartyCapId, JoinResult>& network,
kj::Maybe<Capability::Client> bootstrapInterface);
kj::Maybe<Capability::Client> bootstrapInterface,
kj::Maybe<RealmGateway<>::Client> gateway = nullptr);
template <typename ProvisionId, typename RecipientId,
typename ThirdPartyCapId, typename JoinResult,
......@@ -99,6 +100,17 @@ RpcSystem<VatId> makeRpcServer(
// See also ez-rpc.h, which has simpler instructions for the common case of a two-party
// client-server RPC connection.
template <typename VatId, typename ProvisionId, typename RecipientId,
typename ThirdPartyCapId, typename JoinResult,
typename InternalRef, typename ExternalRef>
RpcSystem<VatId> makeRpcServer(
VatNetwork<VatId, ProvisionId, RecipientId, ThirdPartyCapId, JoinResult>& network,
Capability::Client bootstrapInterface,
typename RealmGateway<InternalRef, ExternalRef>::Client gateway);
// Make an RPC server for a VatNetwork that resides in a different realm from the application.
// The given RealmGateway is used to translate SturdyRefs between the app's ("internal") format
// and the network's ("external") format.
template <typename VatId, typename LocalSturdyRefObjectId,
typename ProvisionId, typename RecipientId, typename ThirdPartyCapId, typename JoinResult>
RpcSystem<VatId> makeRpcServer(
......@@ -134,6 +146,16 @@ RpcSystem<VatId> makeRpcClient(
// See also ez-rpc.h, which has simpler instructions for the common case of a two-party
// client-server RPC connection.
template <typename VatId, typename ProvisionId, typename RecipientId,
typename ThirdPartyCapId, typename JoinResult,
typename InternalRef, typename ExternalRef>
RpcSystem<VatId> makeRpcClient(
VatNetwork<VatId, ProvisionId, RecipientId, ThirdPartyCapId, JoinResult>& network,
typename RealmGateway<InternalRef, ExternalRef>::Client gateway);
// Make an RPC client for a VatNetwork that resides in a different realm from the application.
// The given RealmGateway is used to translate SturdyRefs between the app's ("internal") format
// and the network's ("external") format.
template <typename SturdyRefObjectId>
class SturdyRefRestorer: public _::SturdyRefRestorerBase {
// ** DEPRECATED **
......@@ -310,8 +332,9 @@ template <typename ProvisionId, typename RecipientId,
typename ThirdPartyCapId, typename JoinResult>
RpcSystem<VatId>::RpcSystem(
VatNetwork<VatId, ProvisionId, RecipientId, ThirdPartyCapId, JoinResult>& network,
kj::Maybe<Capability::Client> bootstrap)
: _::RpcSystemBase(network, kj::mv(bootstrap)) {}
kj::Maybe<Capability::Client> bootstrap,
kj::Maybe<RealmGateway<>::Client> gateway)
: _::RpcSystemBase(network, kj::mv(bootstrap), kj::mv(gateway)) {}
template <typename VatId>
template <typename ProvisionId, typename RecipientId,
......@@ -341,6 +364,17 @@ RpcSystem<VatId> makeRpcServer(
return RpcSystem<VatId>(network, kj::mv(bootstrapInterface));
}
template <typename VatId, typename ProvisionId, typename RecipientId,
typename ThirdPartyCapId, typename JoinResult,
typename InternalRef, typename ExternalRef>
RpcSystem<VatId> makeRpcServer(
VatNetwork<VatId, ProvisionId, RecipientId, ThirdPartyCapId, JoinResult>& network,
Capability::Client bootstrapInterface,
typename RealmGateway<InternalRef, ExternalRef>::Client gateway) {
return RpcSystem<VatId>(network, kj::mv(bootstrapInterface),
gateway.template castAs<RealmGateway<>>());
}
template <typename VatId, typename LocalSturdyRefObjectId,
typename ProvisionId, typename RecipientId, typename ThirdPartyCapId, typename JoinResult>
RpcSystem<VatId> makeRpcServer(
......@@ -356,6 +390,15 @@ RpcSystem<VatId> makeRpcClient(
return RpcSystem<VatId>(network, nullptr);
}
template <typename VatId, typename ProvisionId,
typename RecipientId, typename ThirdPartyCapId, typename JoinResult,
typename InternalRef, typename ExternalRef>
RpcSystem<VatId> makeRpcClient(
VatNetwork<VatId, ProvisionId, RecipientId, ThirdPartyCapId, JoinResult>& network,
typename RealmGateway<InternalRef, ExternalRef>::Client gateway) {
return RpcSystem<VatId>(network, nullptr, gateway.template castAs<RealmGateway<>>());
}
} // namespace capnp
#endif // CAPNP_RPC_H_
......@@ -639,6 +639,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -717,6 +718,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -800,6 +802,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -908,6 +911,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -986,6 +990,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1074,6 +1079,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1164,6 +1170,7 @@ public:
inline ::capnp::schema::Value::Pipeline getValue();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1303,6 +1310,7 @@ public:
inline ::capnp::schema::Type::Pipeline getType();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1423,6 +1431,7 @@ public:
inline Ordinal::Pipeline getOrdinal();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1523,6 +1532,7 @@ public:
inline ::capnp::schema::Value::Pipeline getDefaultValue();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1596,6 +1606,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1680,6 +1691,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1773,6 +1785,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1857,6 +1870,7 @@ public:
inline ::capnp::schema::Brand::Pipeline getBrand();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -1992,6 +2006,7 @@ public:
inline ::capnp::schema::Brand::Pipeline getResultBrand();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2195,6 +2210,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2274,6 +2290,7 @@ public:
inline ::capnp::schema::Type::Pipeline getElementType();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2358,6 +2375,7 @@ public:
inline ::capnp::schema::Brand::Pipeline getBrand();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2442,6 +2460,7 @@ public:
inline ::capnp::schema::Brand::Pipeline getBrand();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2526,6 +2545,7 @@ public:
inline ::capnp::schema::Brand::Pipeline getBrand();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2617,6 +2637,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2695,6 +2716,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2768,6 +2790,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2846,6 +2869,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -2940,6 +2964,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -3029,6 +3054,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -3248,6 +3274,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -3343,6 +3370,7 @@ public:
inline ::capnp::schema::Brand::Pipeline getBrand();
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -3431,6 +3459,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -3524,6 +3553,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......@@ -3607,6 +3637,7 @@ public:
private:
::capnp::AnyPointer::Pipeline _typeless;
friend class ::capnp::PipelineHook;
template <typename, ::capnp::Kind>
friend struct ::capnp::ToDynamic_;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment