xref: /openbsd-src/gnu/llvm/lldb/include/lldb/API/SBFileSpecList.h (revision dda2819751e49c83612958492e38917049128b41)
1061da546Spatrick //===-- SBFileSpecList.h --------------------------------------------*- C++
2061da546Spatrick //-*-===//
3061da546Spatrick //
4061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
6061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7061da546Spatrick //
8061da546Spatrick //===----------------------------------------------------------------------===//
9061da546Spatrick 
10*dda28197Spatrick #ifndef LLDB_API_SBFILESPECLIST_H
11*dda28197Spatrick #define LLDB_API_SBFILESPECLIST_H
12061da546Spatrick 
13061da546Spatrick #include "lldb/API/SBDefines.h"
14061da546Spatrick 
15061da546Spatrick namespace lldb {
16061da546Spatrick 
17061da546Spatrick class LLDB_API SBFileSpecList {
18061da546Spatrick public:
19061da546Spatrick   SBFileSpecList();
20061da546Spatrick 
21061da546Spatrick   SBFileSpecList(const lldb::SBFileSpecList &rhs);
22061da546Spatrick 
23061da546Spatrick   ~SBFileSpecList();
24061da546Spatrick 
25061da546Spatrick   const SBFileSpecList &operator=(const lldb::SBFileSpecList &rhs);
26061da546Spatrick 
27061da546Spatrick   uint32_t GetSize() const;
28061da546Spatrick 
29061da546Spatrick   bool GetDescription(SBStream &description) const;
30061da546Spatrick 
31061da546Spatrick   void Append(const SBFileSpec &sb_file);
32061da546Spatrick 
33061da546Spatrick   bool AppendIfUnique(const SBFileSpec &sb_file);
34061da546Spatrick 
35061da546Spatrick   void Clear();
36061da546Spatrick 
37061da546Spatrick   uint32_t FindFileIndex(uint32_t idx, const SBFileSpec &sb_file, bool full);
38061da546Spatrick 
39061da546Spatrick   const SBFileSpec GetFileSpecAtIndex(uint32_t idx) const;
40061da546Spatrick 
41061da546Spatrick private:
42061da546Spatrick   friend class SBTarget;
43061da546Spatrick 
44061da546Spatrick   const lldb_private::FileSpecList *operator->() const;
45061da546Spatrick 
46061da546Spatrick   const lldb_private::FileSpecList *get() const;
47061da546Spatrick 
48061da546Spatrick   const lldb_private::FileSpecList &operator*() const;
49061da546Spatrick 
50061da546Spatrick   const lldb_private::FileSpecList &ref() const;
51061da546Spatrick 
52061da546Spatrick   std::unique_ptr<lldb_private::FileSpecList> m_opaque_up;
53061da546Spatrick };
54061da546Spatrick 
55061da546Spatrick } // namespace lldb
56061da546Spatrick 
57*dda28197Spatrick #endif // LLDB_API_SBFILESPECLIST_H
58