Index: mojo/public/cpp/bindings/interface_impl.h |
diff --git a/mojo/public/cpp/bindings/interface_impl.h b/mojo/public/cpp/bindings/interface_impl.h |
index ec6bc9160e7701dcf4f45ef73c3d992fcb2d1bf9..a9d0947757d728bb773efe0538952ec1556a7151 100644 |
--- a/mojo/public/cpp/bindings/interface_impl.h |
+++ b/mojo/public/cpp/bindings/interface_impl.h |
@@ -20,12 +20,20 @@ namespace mojo { |
template <typename Interface> |
class InterfaceImpl : public WithErrorHandler<Interface> { |
public: |
+ typedef typename Interface::Client Client; |
+ |
InterfaceImpl() : internal_state_(this) {} |
virtual ~InterfaceImpl() {} |
// Subclasses must handle connection errors. |
virtual void OnConnectionError() = 0; |
+ // We override SetClient here so subclasses don't each have to. |
+ virtual void SetClient(Client* client) MOJO_OVERRIDE { |
+ internal_state_.set_client(client); |
+ } |
+ Client* client() { return internal_state_.client(); } |
+ |
// DO NOT USE. Exposed only for internal use and for testing. |
internal::InterfaceImplState<Interface>* internal_state() { |
return &internal_state_; |