blob: 21ea0638cfea4d9034fc09fbd356227c833a1c75 [file] [log] [blame]
// Copyright (c) 2012 The Chromium OS 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 DEBUGD_SRC_PACKET_CAPTURE_TOOL_H_
#define DEBUGD_SRC_PACKET_CAPTURE_TOOL_H_
#include <map>
#include <string>
#include <base/macros.h>
#include <dbus-c++/dbus.h>
#include "debugd/src/subprocess_tool.h"
namespace debugd {
class ProcessWithId;
class PacketCaptureTool : public SubprocessTool {
public:
PacketCaptureTool() = default;
~PacketCaptureTool() override = default;
std::string Start(
const DBus::FileDescriptor& status_fd,
const DBus::FileDescriptor& output_fd,
const std::map<std::string, DBus::Variant>& options,
DBus::Error* error);
private:
static bool AddValidatedStringOption(
const std::map<std::string, DBus::Variant>& options,
const std::string& dbus_option,
const std::string& command_line_option,
ProcessWithId* p);
DISALLOW_COPY_AND_ASSIGN(PacketCaptureTool);
};
} // namespace debugd
#endif // DEBUGD_SRC_PACKET_CAPTURE_TOOL_H_