Index: mojo/public/cpp/bindings/lib/interface_impl_internal.h |
diff --git a/mojo/public/cpp/bindings/lib/interface_impl_internal.h b/mojo/public/cpp/bindings/lib/interface_impl_internal.h |
index 50fe5665360b3f6bd11950503b52311d16592eaa..8c098ccbf9860d6c802435b0d0e5297c666b5128 100644 |
--- a/mojo/public/cpp/bindings/lib/interface_impl_internal.h |
+++ b/mojo/public/cpp/bindings/lib/interface_impl_internal.h |
@@ -15,8 +15,11 @@ namespace internal { |
template <typename Interface> |
class InterfaceImplState : public ErrorHandler { |
public: |
+ typedef typename Interface::Client Client; |
+ |
explicit InterfaceImplState(WithErrorHandler<Interface>* instance) |
: router_(NULL), |
+ client_(NULL), |
proxy_(NULL) { |
assert(instance); |
stub_.set_sink(instance); |
@@ -46,13 +49,16 @@ class InterfaceImplState : public ErrorHandler { |
router_->set_incoming_receiver(&stub_); |
router_->set_error_handler(this); |
- proxy_ = new typename Interface::Client_::Proxy_(router_); |
+ proxy_ = new typename Client::Proxy_(router_); |
stub_.sink()->SetClient(proxy_); |
} |
Router* router() { return router_; } |
+ void set_client(Client* client) { client_ = client; } |
+ Client* client() { return client_; } |
+ |
private: |
virtual void OnConnectionError() MOJO_OVERRIDE { |
static_cast<WithErrorHandler<Interface>*>(stub_.sink())-> |
@@ -60,7 +66,8 @@ class InterfaceImplState : public ErrorHandler { |
} |
internal::Router* router_; |
- typename Interface::Client_::Proxy_* proxy_; |
+ Client* client_; |
+ typename Client::Proxy_* proxy_; |
typename Interface::Stub_ stub_; |
MOJO_DISALLOW_COPY_AND_ASSIGN(InterfaceImplState); |