| // Copyright (c) 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 QUICHE_COMMON_PLATFORM_API_QUICHE_COMMAND_LINE_FLAGS_H_ |
| #define QUICHE_COMMON_PLATFORM_API_QUICHE_COMMAND_LINE_FLAGS_H_ |
| |
| #include <string> |
| #include <vector> |
| |
| #include "net/quiche/common/platform/impl/quiche_command_line_flags_impl.h" |
| |
| // Define a command-line flag that can be automatically set via |
| // QuicheParseCommandLineFlags(). |
| #define DEFINE_QUICHE_COMMAND_LINE_FLAG(type, name, default_value, help) \ |
| DEFINE_QUICHE_COMMAND_LINE_FLAG_IMPL(type, name, default_value, help) |
| |
| namespace quiche { |
| |
| // Parses command-line flags, setting flag variables defined using |
| // DEFINE_QUICHE_COMMAND_LINE_FLAG if they appear in the command line, and |
| // returning a list of any non-flag arguments specified in the command line. If |
| // the command line specifies '-h' or '--help', prints a usage message with flag |
| // descriptions to stdout and exits with status 0. If a flag has an unparsable |
| // value, writes an error message to stderr and exits with status 1. |
| inline std::vector<std::string> QuicheParseCommandLineFlags( |
| const char* usage, int argc, const char* const* argv) { |
| return QuicheParseCommandLineFlagsImpl(usage, argc, argv); |
| } |
| |
| // Prints a usage message with flag descriptions to stdout. |
| inline void QuichePrintCommandLineFlagHelp(const char* usage) { |
| QuichePrintCommandLineFlagHelpImpl(usage); |
| } |
| |
| } // namespace quiche |
| |
| #endif // QUICHE_COMMON_PLATFORM_API_QUICHE_COMMAND_LINE_FLAGS_H_ |