Hi Brano,

thanks for the answer.

Doesn't "kj::mv" invalidate variable "server" since its ownership is moved 
to EzRpcServer?

Best regards,
Jupp

On Tuesday, July 5, 2016 at 1:26:11 PM UTC+2, Branislav Katreniak wrote:
>
> You can remember the reference to ServerImpl before you pass it to 
> EzRpcServer.
>
>     auto server = kj::heap<ServerImpl>();
>     ServerImpl& serverRef = *server;
>     capnp::EzRpcServer server(kj::mv(server), ip_address, port);
>
> Kind regards
>  Brano
>
> On Tue, Jul 5, 2016 at 9:12 AM, <[email protected] <javascript:>> wrote:
>
>> Hi David,
>>
>> thank you very much for the answer. I wasn't able to finally test it, 
>> because I am now having a different problem related to my post.
>> Suppose I have the following server implementation:
>>
>> class ServerImpl:public ServerInterface::Server {
>>  private:
>>   std::vector<ClientInterface::Client> registered_clients_;
>>
>>  public:
>>   kj::Promise<void> registerClientInterface(
>> RegisterClientInterfaceContext context) override {
>>     this->registered_clients_.push_back(context.getParams().getClient());
>>   }
>>
>>   // ...
>> }
>>
>> class ComHandler {
>>  public:
>>   void Run(const std::string& ip_address, std::size_t port) {
>>     capnp::EzRpcServer server(kj::heap<ServerImpl>(), ip_address, port);
>>         kj::WaitScope &wait_scope = server.getWaitScope();
>>    
>>     kj::NEVER_DONE.wait(wait_scope);
>>   }
>>
>>   void InvokeFunctionOnClient() {
>>     // Here I need access to ServerImpl owned by EzRpcServer.
>>     // How would I do that?
>>   }
>> }
>>
>> I can only store the client capabilities in class "ServerImpl" since an 
>> rvalue is needed for pushing to the vector. Since the object of 
>> "ServerImpl" is owned by EzRpcServer, I do not have the possibility to 
>> invoke a client's function from outside, e.g. from class "ComHandler".
>>
>> How would I do that?
>>
>> Best regards,
>> Jupp
>>
>>
>>

-- 
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].
Visit this group at https://groups.google.com/group/capnproto.

Reply via email to