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