SBFileSpecList.h revision 03c8ee5aeafcd6c43f10002a4f8096af01780f86
1//===-- SBFileSpecList.h --------------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_SBFileSpecList_h_
11#define LLDB_SBFileSpecList_h_
12
13#include "lldb/API/SBDefines.h"
14
15namespace lldb {
16
17class SBFileSpecList
18{
19public:
20    SBFileSpecList ();
21
22    SBFileSpecList (const lldb::SBFileSpecList &rhs);
23
24    ~SBFileSpecList ();
25
26#ifndef SWIG
27    const SBFileSpecList &
28    operator = (const lldb::SBFileSpecList &rhs);
29#endif
30
31    uint32_t
32    GetSize () const;
33
34    bool
35    GetDescription (SBStream &description) const;
36
37    void
38    Append (const SBFileSpec &sb_file);
39
40    bool
41    AppendIfUnique (const SBFileSpec &sb_file);
42
43    void
44    Clear();
45
46    uint32_t
47    FindFileIndex (uint32_t idx, const SBFileSpec &sb_file);
48
49    const SBFileSpec
50    GetFileSpecAtIndex (uint32_t idx) const;
51
52private:
53
54#ifndef SWIG
55
56    const lldb_private::FileSpecList *
57    operator->() const;
58
59    const lldb_private::FileSpecList *
60    get() const;
61
62    const lldb_private::FileSpecList &
63    operator*() const;
64
65    const lldb_private::FileSpecList &
66    ref() const;
67
68#endif
69
70    std::auto_ptr <lldb_private::FileSpecList> m_opaque_ap;
71};
72
73
74} // namespace lldb
75
76#endif // LLDB_SBFileSpecList_h_
77