]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / lldb / include / lldb / API / SBFileSpec.h
1 //===-- SBFileSpec.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_SBFileSpec_h_
11 #define LLDB_SBFileSpec_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 namespace lldb {
16
17 class SBFileSpec
18 {
19 public:
20     SBFileSpec ();
21
22     SBFileSpec (const lldb::SBFileSpec &rhs);
23
24     SBFileSpec (const char *path);// Deprected, use SBFileSpec (const char *path, bool resolve)
25
26     SBFileSpec (const char *path, bool resolve);
27
28     ~SBFileSpec ();
29
30     const SBFileSpec &
31     operator = (const lldb::SBFileSpec &rhs);
32
33     bool
34     IsValid() const;
35
36     bool
37     Exists () const;
38
39     bool
40     ResolveExecutableLocation ();
41
42     const char *
43     GetFilename() const;
44
45     const char *
46     GetDirectory() const;
47
48     uint32_t
49     GetPath (char *dst_path, size_t dst_len) const;
50
51     static int
52     ResolvePath (const char *src_path, char *dst_path, size_t dst_len);
53
54     bool
55     GetDescription (lldb::SBStream &description) const;
56
57 private:
58     friend class SBAttachInfo;
59     friend class SBBlock;
60     friend class SBCompileUnit;
61     friend class SBDeclaration;
62     friend class SBFileSpecList;
63     friend class SBHostOS;
64     friend class SBLaunchInfo;
65     friend class SBLineEntry;
66     friend class SBModule;
67     friend class SBModuleSpec;
68     friend class SBProcess;
69     friend class SBSourceManager;
70     friend class SBThread;
71     friend class SBTarget;
72
73     SBFileSpec (const lldb_private::FileSpec& fspec);
74
75     void
76     SetFileSpec (const lldb_private::FileSpec& fspec);
77
78     const lldb_private::FileSpec *
79     operator->() const;
80
81     const lldb_private::FileSpec *
82     get() const;
83
84     const lldb_private::FileSpec &
85     operator*() const;
86
87     const lldb_private::FileSpec &
88     ref() const;
89
90     std::unique_ptr<lldb_private::FileSpec> m_opaque_ap;
91 };
92
93
94 } // namespace lldb
95
96 #endif // LLDB_SBFileSpec_h_