130fdc8d8SChris Lattner //===-- SBSourceManager.cpp -------------------------------------*- C++ -*-===//
230fdc8d8SChris Lattner //
330fdc8d8SChris Lattner //                     The LLVM Compiler Infrastructure
430fdc8d8SChris Lattner //
530fdc8d8SChris Lattner // This file is distributed under the University of Illinois Open Source
630fdc8d8SChris Lattner // License. See LICENSE.TXT for details.
730fdc8d8SChris Lattner //
830fdc8d8SChris Lattner //===----------------------------------------------------------------------===//
930fdc8d8SChris Lattner 
1030fdc8d8SChris Lattner 
114c5de699SEli Friedman #include "lldb/API/SBSourceManager.h"
12*f6eaba85SJohnny Chen #include "lldb/API/SBStream.h"
1330fdc8d8SChris Lattner 
1430fdc8d8SChris Lattner #include "lldb/API/SBFileSpec.h"
1530fdc8d8SChris Lattner #include "lldb/Core/Stream.h"
1630fdc8d8SChris Lattner #include "lldb/Core/StreamFile.h"
1730fdc8d8SChris Lattner #include "lldb/Core/SourceManager.h"
1830fdc8d8SChris Lattner 
1930fdc8d8SChris Lattner 
2030fdc8d8SChris Lattner using namespace lldb;
2130fdc8d8SChris Lattner using namespace lldb_private;
2230fdc8d8SChris Lattner 
2330fdc8d8SChris Lattner 
24efabb123SGreg Clayton SBSourceManager::SBSourceManager (SourceManager* source_manager) :
25efabb123SGreg Clayton     m_opaque_ptr (source_manager)
2630fdc8d8SChris Lattner {
2730fdc8d8SChris Lattner }
2830fdc8d8SChris Lattner 
2930fdc8d8SChris Lattner SBSourceManager::~SBSourceManager()
3030fdc8d8SChris Lattner {
3130fdc8d8SChris Lattner }
3230fdc8d8SChris Lattner 
33efabb123SGreg Clayton SBSourceManager::SBSourceManager(const SBSourceManager &rhs) :
34efabb123SGreg Clayton     m_opaque_ptr (rhs.m_opaque_ptr)
35efabb123SGreg Clayton {
36efabb123SGreg Clayton }
37efabb123SGreg Clayton 
38efabb123SGreg Clayton const SBSourceManager &
39efabb123SGreg Clayton SBSourceManager::operator = (const SBSourceManager &rhs)
40efabb123SGreg Clayton {
41efabb123SGreg Clayton     m_opaque_ptr = rhs.m_opaque_ptr;
42efabb123SGreg Clayton     return *this;
43efabb123SGreg Clayton }
44efabb123SGreg Clayton 
4530fdc8d8SChris Lattner size_t
4630fdc8d8SChris Lattner SBSourceManager::DisplaySourceLinesWithLineNumbers
4730fdc8d8SChris Lattner (
4830fdc8d8SChris Lattner     const SBFileSpec &file,
4930fdc8d8SChris Lattner     uint32_t line,
5030fdc8d8SChris Lattner     uint32_t context_before,
5130fdc8d8SChris Lattner     uint32_t context_after,
5230fdc8d8SChris Lattner     const char* current_line_cstr,
53*f6eaba85SJohnny Chen     SBStream &s
5430fdc8d8SChris Lattner )
5530fdc8d8SChris Lattner {
56efabb123SGreg Clayton     if (m_opaque_ptr == NULL)
57efabb123SGreg Clayton         return 0;
58efabb123SGreg Clayton 
59*f6eaba85SJohnny Chen     if (s.m_opaque_ap.get() == NULL)
6030fdc8d8SChris Lattner         return 0;
6130fdc8d8SChris Lattner 
6230fdc8d8SChris Lattner     if (file.IsValid())
6330fdc8d8SChris Lattner     {
64efabb123SGreg Clayton         return m_opaque_ptr->DisplaySourceLinesWithLineNumbers (*file,
6530fdc8d8SChris Lattner                                                                 line,
6630fdc8d8SChris Lattner                                                                 context_before,
6730fdc8d8SChris Lattner                                                                 context_after,
6830fdc8d8SChris Lattner                                                                 current_line_cstr,
69*f6eaba85SJohnny Chen                                                                 s.m_opaque_ap.get());
7030fdc8d8SChris Lattner     }
7130fdc8d8SChris Lattner     return 0;
7230fdc8d8SChris Lattner }
73