SBSymbolContextList.h revision 7dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2
1//===-- SBSymbolContextList.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_SBSymbolContextList_h_
11#define LLDB_SBSymbolContextList_h_
12
13#include "lldb/API/SBDefines.h"
14#include "lldb/API/SBSymbolContext.h"
15
16namespace lldb {
17
18class SBSymbolContextList
19{
20public:
21    SBSymbolContextList ();
22
23    SBSymbolContextList (const lldb::SBSymbolContextList& rhs);
24
25    ~SBSymbolContextList ();
26
27    const lldb::SBSymbolContextList &
28    operator = (const lldb::SBSymbolContextList &rhs);
29
30    bool
31    IsValid () const;
32
33    uint32_t
34    GetSize() const;
35
36    lldb::SBSymbolContext
37    GetContextAtIndex (uint32_t idx);
38
39    bool
40    GetDescription (lldb::SBStream &description);
41
42    void
43    Append (lldb::SBSymbolContext &sc);
44
45    void
46    Append (lldb::SBSymbolContextList &sc_list);
47
48    void
49    Clear();
50
51protected:
52
53    friend class SBModule;
54    friend class SBTarget;
55
56    lldb_private::SymbolContextList*
57    operator->() const;
58
59    lldb_private::SymbolContextList&
60    operator*() const;
61
62private:
63    std::auto_ptr<lldb_private::SymbolContextList> m_opaque_ap;
64};
65
66
67} // namespace lldb
68
69#endif // LLDB_SBSymbolContextList_h_
70