SBSourceManager.h revision 314564
1//===-- SBSourceManager.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_SBSourceManager_h_
11#define LLDB_SBSourceManager_h_
12
13#include "lldb/API/SBDefines.h"
14
15#include <stdio.h>
16
17namespace lldb {
18
19class LLDB_API SBSourceManager {
20public:
21  SBSourceManager(const SBDebugger &debugger);
22  SBSourceManager(const SBTarget &target);
23  SBSourceManager(const SBSourceManager &rhs);
24
25  ~SBSourceManager();
26
27  const lldb::SBSourceManager &operator=(const lldb::SBSourceManager &rhs);
28
29  size_t DisplaySourceLinesWithLineNumbers(
30      const lldb::SBFileSpec &file, uint32_t line, uint32_t context_before,
31      uint32_t context_after, const char *current_line_cstr, lldb::SBStream &s);
32
33  size_t DisplaySourceLinesWithLineNumbersAndColumn(
34      const lldb::SBFileSpec &file, uint32_t line, uint32_t column,
35      uint32_t context_before, uint32_t context_after,
36      const char *current_line_cstr, lldb::SBStream &s);
37
38protected:
39  friend class SBCommandInterpreter;
40  friend class SBDebugger;
41
42  SBSourceManager(lldb_private::SourceManager *source_manager);
43
44private:
45  std::unique_ptr<lldb_private::SourceManagerImpl> m_opaque_ap;
46};
47
48} // namespace lldb
49
50#endif // LLDB_SBSourceManager_h_
51