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 
11*4c5de699SEli 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 
2330fdc8d8SChris Lattner SBSourceManager::SBSourceManager (SourceManager& source_manager) :
2430fdc8d8SChris Lattner     m_source_manager (source_manager)
2530fdc8d8SChris Lattner {
2630fdc8d8SChris Lattner }
2730fdc8d8SChris Lattner 
2830fdc8d8SChris Lattner SBSourceManager::~SBSourceManager()
2930fdc8d8SChris Lattner {
3030fdc8d8SChris Lattner }
3130fdc8d8SChris Lattner 
3230fdc8d8SChris Lattner size_t
3330fdc8d8SChris Lattner SBSourceManager::DisplaySourceLinesWithLineNumbers
3430fdc8d8SChris Lattner (
3530fdc8d8SChris Lattner     const SBFileSpec &file,
3630fdc8d8SChris Lattner     uint32_t line,
3730fdc8d8SChris Lattner     uint32_t context_before,
3830fdc8d8SChris Lattner     uint32_t context_after,
3930fdc8d8SChris Lattner     const char* current_line_cstr,
4030fdc8d8SChris Lattner     FILE *f
4130fdc8d8SChris Lattner )
4230fdc8d8SChris Lattner {
4330fdc8d8SChris Lattner     if (f == NULL)
4430fdc8d8SChris Lattner         return 0;
4530fdc8d8SChris Lattner 
4630fdc8d8SChris Lattner     if (file.IsValid())
4730fdc8d8SChris Lattner     {
4830fdc8d8SChris Lattner         StreamFile str (f);
4930fdc8d8SChris Lattner 
5030fdc8d8SChris Lattner 
5130fdc8d8SChris Lattner         return m_source_manager.DisplaySourceLinesWithLineNumbers (*file,
5230fdc8d8SChris Lattner                                                                    line,
5330fdc8d8SChris Lattner                                                                    context_before,
5430fdc8d8SChris Lattner                                                                    context_after,
5530fdc8d8SChris Lattner                                                                    current_line_cstr,
5630fdc8d8SChris Lattner                                                                    &str);
5730fdc8d8SChris Lattner     }
5830fdc8d8SChris Lattner     return 0;
5930fdc8d8SChris Lattner }
6030fdc8d8SChris Lattner 
6130fdc8d8SChris Lattner SourceManager &
6230fdc8d8SChris Lattner SBSourceManager::GetLLDBManager ()
6330fdc8d8SChris Lattner {
6430fdc8d8SChris Lattner     return m_source_manager;
6530fdc8d8SChris Lattner }
66