blob: 52df3408037f5cbc2c303f1676b18825b88a6d24 [file] [log] [blame]
// Copyright 2016 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 GARNET_BIN_TRACE_MANAGER_CONFIG_H_
#define GARNET_BIN_TRACE_MANAGER_CONFIG_H_
#include <map>
#include <string>
#include <fuchsia/sys/cpp/fidl.h>
namespace tracing {
class Config {
public:
Config();
~Config();
Config(Config&& other) = default;
Config& operator=(Config&& other) = default;
Config(const Config&) = delete;
Config& operator=(const Config&) = delete;
// Tries to parse configuration from |command_line|.
// Returns false if an error occurs.
bool ReadFrom(const std::string& config_file);
// All categories known to the |TraceManager|, with every
// category being described by a short string.
const std::map<std::string, std::string>& known_categories() const { return known_categories_; }
// Well-known providers to start automatically.
const std::map<std::string, fuchsia::sys::LaunchInfoPtr>& providers() const { return providers_; }
private:
std::map<std::string, std::string> known_categories_;
std::map<std::string, fuchsia::sys::LaunchInfoPtr> providers_;
};
} // namespace tracing
#endif // GARNET_BIN_TRACE_MANAGER_CONFIG_H_