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 |