// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_MANIFEST_H_ #define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_MANIFEST_H_ #include <map> #include <set> #include <string> #include <vector> #include "base/component_export.h" #include "base/files/file_path.h" namespace service_manager { // Represents metadata about a service that the Service Manager needs in order // to start and control instances of that given service. This data is provided // to the Service Manager at initialization time for every known service in the // system. // // A service will typically define a dedicated manifest target in their public // C++ client library with a single GetManifest() function that returns a // const ref to a function-local static Manifest. Then any Service Manager // embedder can reference the manifest in order to include support for that // service within its runtime environment. // // Instead of constructing a Manifest manually, prefer to use a ManifestBuilder // defined in manifest_builder.h for more readable and maintainable manifest // definitions. struct COMPONENT_EXPORT(SERVICE_MANAGER_CPP) Manifest { … }; } // namespace service_manager #endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_MANIFEST_H_