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" 1230fdc8d8SChris Lattner 1330fdc8d8SChris Lattner #include "lldb/API/SBFileSpec.h" 1430fdc8d8SChris Lattner #include "lldb/Core/Stream.h" 1530fdc8d8SChris Lattner #include "lldb/Core/StreamFile.h" 1630fdc8d8SChris Lattner #include "lldb/Core/SourceManager.h" 1730fdc8d8SChris Lattner 1830fdc8d8SChris Lattner 1930fdc8d8SChris Lattner using namespace lldb; 2030fdc8d8SChris Lattner using namespace lldb_private; 2130fdc8d8SChris Lattner 2230fdc8d8SChris Lattner 23*efabb123SGreg Clayton SBSourceManager::SBSourceManager (SourceManager* source_manager) : 24*efabb123SGreg Clayton m_opaque_ptr (source_manager) 2530fdc8d8SChris Lattner { 2630fdc8d8SChris Lattner } 2730fdc8d8SChris Lattner 2830fdc8d8SChris Lattner SBSourceManager::~SBSourceManager() 2930fdc8d8SChris Lattner { 3030fdc8d8SChris Lattner } 3130fdc8d8SChris Lattner 32*efabb123SGreg Clayton SBSourceManager::SBSourceManager(const SBSourceManager &rhs) : 33*efabb123SGreg Clayton m_opaque_ptr (rhs.m_opaque_ptr) 34*efabb123SGreg Clayton { 35*efabb123SGreg Clayton } 36*efabb123SGreg Clayton 37*efabb123SGreg Clayton const SBSourceManager & 38*efabb123SGreg Clayton SBSourceManager::operator = (const SBSourceManager &rhs) 39*efabb123SGreg Clayton { 40*efabb123SGreg Clayton m_opaque_ptr = rhs.m_opaque_ptr; 41*efabb123SGreg Clayton return *this; 42*efabb123SGreg Clayton } 43*efabb123SGreg Clayton 4430fdc8d8SChris Lattner size_t 4530fdc8d8SChris Lattner SBSourceManager::DisplaySourceLinesWithLineNumbers 4630fdc8d8SChris Lattner ( 4730fdc8d8SChris Lattner const SBFileSpec &file, 4830fdc8d8SChris Lattner uint32_t line, 4930fdc8d8SChris Lattner uint32_t context_before, 5030fdc8d8SChris Lattner uint32_t context_after, 5130fdc8d8SChris Lattner const char* current_line_cstr, 5230fdc8d8SChris Lattner FILE *f 5330fdc8d8SChris Lattner ) 5430fdc8d8SChris Lattner { 55*efabb123SGreg Clayton if (m_opaque_ptr == NULL) 56*efabb123SGreg Clayton return 0; 57*efabb123SGreg Clayton 5830fdc8d8SChris Lattner if (f == NULL) 5930fdc8d8SChris Lattner return 0; 6030fdc8d8SChris Lattner 6130fdc8d8SChris Lattner if (file.IsValid()) 6230fdc8d8SChris Lattner { 6330fdc8d8SChris Lattner StreamFile str (f); 6430fdc8d8SChris Lattner 6530fdc8d8SChris Lattner 66*efabb123SGreg Clayton return m_opaque_ptr->DisplaySourceLinesWithLineNumbers (*file, 6730fdc8d8SChris Lattner line, 6830fdc8d8SChris Lattner context_before, 6930fdc8d8SChris Lattner context_after, 7030fdc8d8SChris Lattner current_line_cstr, 7130fdc8d8SChris Lattner &str); 7230fdc8d8SChris Lattner } 7330fdc8d8SChris Lattner return 0; 7430fdc8d8SChris Lattner } 75