1296417Sdim//===-- OptionGroupOutputFile.h ---------------------------------*- C++ -*-===//
2254721Semaste//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6254721Semaste//
7254721Semaste//===----------------------------------------------------------------------===//
8254721Semaste
9254721Semaste#ifndef liblldb_OptionGroupOutputFile_h_
10254721Semaste#define liblldb_OptionGroupOutputFile_h_
11254721Semaste
12254721Semaste#include "lldb/Interpreter/OptionValueBoolean.h"
13254721Semaste#include "lldb/Interpreter/OptionValueFileSpec.h"
14314564Sdim#include "lldb/Interpreter/Options.h"
15254721Semaste
16254721Semastenamespace lldb_private {
17254721Semaste// OptionGroupOutputFile
18254721Semaste
19314564Sdimclass OptionGroupOutputFile : public OptionGroup {
20254721Semastepublic:
21314564Sdim  OptionGroupOutputFile();
22254721Semaste
23314564Sdim  ~OptionGroupOutputFile() override;
24254721Semaste
25314564Sdim  llvm::ArrayRef<OptionDefinition> GetDefinitions() override;
26254721Semaste
27321369Sdim  Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_value,
28321369Sdim                        ExecutionContext *execution_context) override;
29321369Sdim  Status SetOptionValue(uint32_t, const char *, ExecutionContext *) = delete;
30314564Sdim
31314564Sdim  void OptionParsingStarting(ExecutionContext *execution_context) override;
32314564Sdim
33314564Sdim  const OptionValueFileSpec &GetFile() { return m_file; }
34314564Sdim
35314564Sdim  const OptionValueBoolean &GetAppend() { return m_append; }
36314564Sdim
37314564Sdim  bool AnyOptionWasSet() const {
38314564Sdim    return m_file.OptionWasSet() || m_append.OptionWasSet();
39314564Sdim  }
40314564Sdim
41254721Semasteprotected:
42314564Sdim  OptionValueFileSpec m_file;
43314564Sdim  OptionValueBoolean m_append;
44254721Semaste};
45254721Semaste
46254721Semaste} // namespace lldb_private
47254721Semaste
48296417Sdim#endif // liblldb_OptionGroupOutputFile_h_
49