Hello Kenton,

yes, this helped. Thanks a lot for the help and quick reply. 

Cheers, Michael

On Tuesday, August 27, 2019 at 5:50:18 PM UTC+2, Kenton Varda wrote:
>
> Hi Michael,
>
> The thing about AnyPointer is that it's not just a pointer to a value -- 
> it's a (native) pointer to a (capnp) pointer, the latter of which has to 
> exist within some larger message.
>
> The right way to initialize an AnyPointer, then, is more like how you'd 
> initialize a nested struct -- you start with the parent object's Builder 
> and call getVal() to get an AnyPointer::Builder, then you call 
> setAs<whatever>(value) on that, like:
>
>   context.getResults().getVal().setAs<SomeInterface>(capClient);
>
> Does that help?
>
> -Kenton
>
> On Tue, Aug 27, 2019 at 7:09 AM Michael Berg <[email protected] 
> <javascript:>> wrote:
>
>> Hello,
>>
>> interface A(T) {
>>     value @0 () -> (val :T);
>> }
>>
>> is there a way to get from a capnp::Capability::Client to a 
>> capnp::AnyPointer? 
>>
>> I'm struggling with some generic schema where I'm implementing 
>> "A::Server" which holds an AnyPointer member field to store a value of some 
>> type T. An instance of A will later be returned to a client which can then 
>> get the value via calling the "value" method. The value to be stored in A 
>> can for instance either be a list of Capability::Client or a just a 
>> Capability::Client. So when I want to instantiate A I got (e.g. as a 
>> parameter to the method) a Capability::Client not an AnyPointer. 
>> So my problem is, that I can easily get a Capabilty::Client from an 
>> AnyPointer via AnyPointer::getAs<some Interface>(), but I find no way to 
>> get from a Capabilty::Client to an AnyPointer which I need in order to 
>> create an instance of A (in my C++ code). I have the feeling that I'm 
>> missing something very obvious.
>> Can somebody help?
>>
>> Thank you and best regards
>>
>> Michael
>>
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Cap'n Proto" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/capnproto/708e920e-09bd-4343-a4bd-3c82bf6238e9%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/capnproto/708e920e-09bd-4343-a4bd-3c82bf6238e9%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/capnproto/fb7769ca-11a8-4bbd-aab3-687d9b38c8ed%40googlegroups.com.

Reply via email to