| Index: services/service_manager/public/cpp/lib/service.cc
 | 
| diff --git a/services/service_manager/public/cpp/lib/service.cc b/services/service_manager/public/cpp/lib/service.cc
 | 
| index 7d0d72a269cc14988e116a0c9601a763c6c3cfd1..c9d85ce73032fdf2fa74697da520bedf4e76cded 100644
 | 
| --- a/services/service_manager/public/cpp/lib/service.cc
 | 
| +++ b/services/service_manager/public/cpp/lib/service.cc
 | 
| @@ -4,12 +4,43 @@
 | 
|  
 | 
|  #include "services/service_manager/public/cpp/service.h"
 | 
|  
 | 
| +#include "base/logging.h"
 | 
| +
 | 
|  namespace service_manager {
 | 
|  
 | 
| -Service::~Service() {}
 | 
| +Service::Service() = default;
 | 
| +
 | 
| +Service::~Service() = default;
 | 
| +
 | 
| +void Service::OnStart() {}
 | 
|  
 | 
| -void Service::OnStart(ServiceContext* context) {}
 | 
| +bool Service::OnConnect(const ServiceInfo& remote_info,
 | 
| +                        InterfaceRegistry* registry) {
 | 
| +  return false;
 | 
| +}
 | 
|  
 | 
|  bool Service::OnStop() { return true; }
 | 
|  
 | 
| +ServiceContext* Service::context() const {
 | 
| +  DCHECK(service_context_)
 | 
| +      << "Service::context() may only be called during or after OnStart().";
 | 
| +  return service_context_;
 | 
| +}
 | 
| +
 | 
| +ForwardingService::ForwardingService(Service* target) : target_(target) {}
 | 
| +
 | 
| +ForwardingService::~ForwardingService() {}
 | 
| +
 | 
| +void ForwardingService::OnStart() {
 | 
| +  target_->set_context(context());
 | 
| +  target_->OnStart();
 | 
| +}
 | 
| +
 | 
| +bool ForwardingService::OnConnect(const ServiceInfo& remote_info,
 | 
| +                                  InterfaceRegistry* registry) {
 | 
| +  return target_->OnConnect(remote_info, registry);
 | 
| +}
 | 
| +
 | 
| +bool ForwardingService::OnStop() { return target_->OnStop(); }
 | 
| +
 | 
|  }  // namespace service_manager
 | 
| 
 |