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