]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBDeclaration.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / lldb / include / lldb / API / SBDeclaration.h
1 //===-- SBDeclaration.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_SBDeclaration_h_
11 #define LLDB_SBDeclaration_h_
12
13 #include "lldb/API/SBDefines.h"
14 #include "lldb/API/SBFileSpec.h"
15
16 namespace lldb {
17     
18     class SBDeclaration
19     {
20     public:
21         
22         SBDeclaration ();
23         
24         SBDeclaration (const lldb::SBDeclaration &rhs);
25         
26         ~SBDeclaration ();
27         
28         const lldb::SBDeclaration &
29         operator = (const lldb::SBDeclaration &rhs);
30         
31         bool
32         IsValid () const;
33         
34         lldb::SBFileSpec
35         GetFileSpec () const;
36         
37         uint32_t
38         GetLine () const;
39         
40         uint32_t
41         GetColumn () const;
42         
43         void
44         SetFileSpec (lldb::SBFileSpec filespec);
45         
46         void
47         SetLine (uint32_t line);
48         
49         void
50         SetColumn (uint32_t column);
51         
52         bool
53         operator == (const lldb::SBDeclaration &rhs) const;
54         
55         bool
56         operator != (const lldb::SBDeclaration &rhs) const;
57         
58         bool
59         GetDescription (lldb::SBStream &description);
60         
61     protected:
62         
63         lldb_private::Declaration *
64         get ();
65         
66     private:
67         friend class SBValue;
68         
69         const lldb_private::Declaration *
70         operator->() const;
71         
72         lldb_private::Declaration &
73         ref();
74         
75         const lldb_private::Declaration &
76         ref() const;
77         
78         SBDeclaration (const lldb_private::Declaration *lldb_object_ptr);
79         
80         void
81         SetDeclaration (const lldb_private::Declaration &lldb_object_ref);
82         
83         std::unique_ptr<lldb_private::Declaration> m_opaque_ap;
84     };
85     
86     
87 } // namespace lldb
88
89 #endif // LLDB_SBDeclaration_h_