// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_SERVICES_PATCH_PATCH_SERVICE_H_ #define COMPONENTS_SERVICES_PATCH_PATCH_SERVICE_H_ #include #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service_context.h" #include "services/service_manager/public/cpp/service_context_ref.h" namespace patch { class PatchService : public service_manager::Service { public: PatchService(); ~PatchService() override; // Factory method for creating the service. static std::unique_ptr CreateService(); // Lifescycle events that occur after the service has started to spinup. void OnStart() override; void OnBindInterface(const service_manager::BindSourceInfo& source_info, const std::string& interface_name, mojo::ScopedMessagePipeHandle interface_pipe) override; private: // State needed to manage service lifecycle and lifecycle of bound clients. std::unique_ptr ref_factory_; service_manager::BinderRegistry registry_; DISALLOW_COPY_AND_ASSIGN(PatchService); }; } // namespace patch #endif // COMPONENTS_SERVICES_PATCH_PATCH_SERVICE_H_