| // Copyright 2019 The Fuchsia 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 SRC_DEVELOPER_DEBUG_SHARED_COMPONENT_UTILS_H_ |
| #define SRC_DEVELOPER_DEBUG_SHARED_COMPONENT_UTILS_H_ |
| |
| #include <string> |
| |
| // Collection of utilities meant for easier handling components. |
| |
| namespace debug_ipc { |
| |
| // Struct meant to hold an over-arching description of a component. This struct is meant to grow |
| // over time. |
| struct ComponentDescription { |
| std::string package_name; |
| std::string component_name; |
| }; |
| |
| // Will attempt to extract component names from a package url. Url has the following format: |
| // |
| // fuchsia-pkg://fuchsia.com/<package_name>#meta/<component_name>.cmx |
| // |
| // Returns false if the url doesn't contain that format. |out| is untouched in that case. |
| bool ExtractComponentFromPackageUrl(const std::string& url, ComponentDescription* out); |
| |
| } // namespace debug_ipc |
| |
| #endif // SRC_DEVELOPER_DEBUG_SHARED_COMPONENT_UTILS_H_ |