1*30fdc8d8SChris Lattner //===-- SBModule.cpp --------------------------------------------*- C++ -*-===//
2*30fdc8d8SChris Lattner //
3*30fdc8d8SChris Lattner //                     The LLVM Compiler Infrastructure
4*30fdc8d8SChris Lattner //
5*30fdc8d8SChris Lattner // This file is distributed under the University of Illinois Open Source
6*30fdc8d8SChris Lattner // License. See LICENSE.TXT for details.
7*30fdc8d8SChris Lattner //
8*30fdc8d8SChris Lattner //===----------------------------------------------------------------------===//
9*30fdc8d8SChris Lattner 
10*30fdc8d8SChris Lattner #include "lldb/API/SBModule.h"
11*30fdc8d8SChris Lattner #include "lldb/API/SBFileSpec.h"
12*30fdc8d8SChris Lattner #include "lldb/Core/Module.h"
13*30fdc8d8SChris Lattner 
14*30fdc8d8SChris Lattner using namespace lldb;
15*30fdc8d8SChris Lattner 
16*30fdc8d8SChris Lattner 
17*30fdc8d8SChris Lattner SBModule::SBModule () :
18*30fdc8d8SChris Lattner     m_lldb_object_sp ()
19*30fdc8d8SChris Lattner {
20*30fdc8d8SChris Lattner }
21*30fdc8d8SChris Lattner 
22*30fdc8d8SChris Lattner SBModule::SBModule (const lldb::ModuleSP& module_sp) :
23*30fdc8d8SChris Lattner     m_lldb_object_sp (module_sp)
24*30fdc8d8SChris Lattner {
25*30fdc8d8SChris Lattner }
26*30fdc8d8SChris Lattner 
27*30fdc8d8SChris Lattner SBModule::~SBModule ()
28*30fdc8d8SChris Lattner {
29*30fdc8d8SChris Lattner }
30*30fdc8d8SChris Lattner 
31*30fdc8d8SChris Lattner bool
32*30fdc8d8SChris Lattner SBModule::IsValid () const
33*30fdc8d8SChris Lattner {
34*30fdc8d8SChris Lattner     return m_lldb_object_sp.get() != NULL;
35*30fdc8d8SChris Lattner }
36*30fdc8d8SChris Lattner 
37*30fdc8d8SChris Lattner SBFileSpec
38*30fdc8d8SChris Lattner SBModule::GetFileSpec () const
39*30fdc8d8SChris Lattner {
40*30fdc8d8SChris Lattner     SBFileSpec file_spec;
41*30fdc8d8SChris Lattner     if (m_lldb_object_sp)
42*30fdc8d8SChris Lattner         file_spec.SetFileSpec(m_lldb_object_sp->GetFileSpec());
43*30fdc8d8SChris Lattner     return file_spec;
44*30fdc8d8SChris Lattner }
45*30fdc8d8SChris Lattner 
46*30fdc8d8SChris Lattner const uint8_t *
47*30fdc8d8SChris Lattner SBModule::GetUUIDBytes () const
48*30fdc8d8SChris Lattner {
49*30fdc8d8SChris Lattner     if (m_lldb_object_sp)
50*30fdc8d8SChris Lattner         return (const uint8_t *)m_lldb_object_sp->GetUUID().GetBytes();
51*30fdc8d8SChris Lattner     return NULL;
52*30fdc8d8SChris Lattner }
53*30fdc8d8SChris Lattner 
54*30fdc8d8SChris Lattner 
55*30fdc8d8SChris Lattner bool
56*30fdc8d8SChris Lattner SBModule::operator == (const SBModule &rhs) const
57*30fdc8d8SChris Lattner {
58*30fdc8d8SChris Lattner     if (m_lldb_object_sp)
59*30fdc8d8SChris Lattner         return m_lldb_object_sp.get() == rhs.m_lldb_object_sp.get();
60*30fdc8d8SChris Lattner     return false;
61*30fdc8d8SChris Lattner }
62*30fdc8d8SChris Lattner 
63*30fdc8d8SChris Lattner bool
64*30fdc8d8SChris Lattner SBModule::operator != (const SBModule &rhs) const
65*30fdc8d8SChris Lattner {
66*30fdc8d8SChris Lattner     if (m_lldb_object_sp)
67*30fdc8d8SChris Lattner         return m_lldb_object_sp.get() != rhs.m_lldb_object_sp.get();
68*30fdc8d8SChris Lattner     return false;
69*30fdc8d8SChris Lattner }
70*30fdc8d8SChris Lattner 
71*30fdc8d8SChris Lattner lldb::ModuleSP &
72*30fdc8d8SChris Lattner SBModule::operator *()
73*30fdc8d8SChris Lattner {
74*30fdc8d8SChris Lattner     return m_lldb_object_sp;
75*30fdc8d8SChris Lattner }
76*30fdc8d8SChris Lattner 
77*30fdc8d8SChris Lattner lldb_private::Module *
78*30fdc8d8SChris Lattner SBModule::operator ->()
79*30fdc8d8SChris Lattner {
80*30fdc8d8SChris Lattner     return m_lldb_object_sp.get();
81*30fdc8d8SChris Lattner }
82*30fdc8d8SChris Lattner 
83*30fdc8d8SChris Lattner const lldb_private::Module *
84*30fdc8d8SChris Lattner SBModule::operator ->() const
85*30fdc8d8SChris Lattner {
86*30fdc8d8SChris Lattner     return m_lldb_object_sp.get();
87*30fdc8d8SChris Lattner }
88*30fdc8d8SChris Lattner 
89*30fdc8d8SChris Lattner lldb_private::Module *
90*30fdc8d8SChris Lattner SBModule::get()
91*30fdc8d8SChris Lattner {
92*30fdc8d8SChris Lattner     return m_lldb_object_sp.get();
93*30fdc8d8SChris Lattner }
94*30fdc8d8SChris Lattner 
95*30fdc8d8SChris Lattner const lldb_private::Module *
96*30fdc8d8SChris Lattner SBModule::get() const
97*30fdc8d8SChris Lattner {
98*30fdc8d8SChris Lattner     return m_lldb_object_sp.get();
99*30fdc8d8SChris Lattner }
100*30fdc8d8SChris Lattner 
101*30fdc8d8SChris Lattner 
102*30fdc8d8SChris Lattner void
103*30fdc8d8SChris Lattner SBModule::SetModule (const lldb::ModuleSP& module_sp)
104*30fdc8d8SChris Lattner {
105*30fdc8d8SChris Lattner     m_lldb_object_sp = module_sp;
106*30fdc8d8SChris Lattner }
107*30fdc8d8SChris Lattner 
108