blob: 3c700e170354fd8c981d28d2c59ea435fbffa65a [file] [log] [blame]
Chris Lattner24943d22010-06-08 16:52:24 +00001//===-- SBSymbol.cpp --------------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "lldb/API/SBSymbol.h"
Caroline Tice98f930f2010-09-20 05:20:02 +000011#include "lldb/API/SBStream.h"
Chris Lattner24943d22010-06-08 16:52:24 +000012#include "lldb/Symbol/Symbol.h"
13
14using namespace lldb;
15
16
17SBSymbol::SBSymbol () :
Greg Clayton63094e02010-06-23 01:19:29 +000018 m_opaque_ptr (NULL)
Chris Lattner24943d22010-06-08 16:52:24 +000019{
20}
21
22SBSymbol::SBSymbol (lldb_private::Symbol *lldb_object_ptr) :
Greg Clayton63094e02010-06-23 01:19:29 +000023 m_opaque_ptr (lldb_object_ptr)
Chris Lattner24943d22010-06-08 16:52:24 +000024{
25}
26
27SBSymbol::~SBSymbol ()
28{
Greg Clayton63094e02010-06-23 01:19:29 +000029 m_opaque_ptr = NULL;
Chris Lattner24943d22010-06-08 16:52:24 +000030}
31
32bool
33SBSymbol::IsValid () const
34{
Greg Clayton63094e02010-06-23 01:19:29 +000035 return m_opaque_ptr != NULL;
Chris Lattner24943d22010-06-08 16:52:24 +000036}
37
38const char *
39SBSymbol::GetName() const
40{
Greg Clayton63094e02010-06-23 01:19:29 +000041 if (m_opaque_ptr)
42 return m_opaque_ptr->GetMangled().GetName().AsCString();
Chris Lattner24943d22010-06-08 16:52:24 +000043 return NULL;
44}
45
46const char *
47SBSymbol::GetMangledName () const
48{
Greg Clayton63094e02010-06-23 01:19:29 +000049 if (m_opaque_ptr)
50 return m_opaque_ptr->GetMangled().GetMangledName().AsCString();
Chris Lattner24943d22010-06-08 16:52:24 +000051 return NULL;
52}
53
54
55bool
56SBSymbol::operator == (const SBSymbol &rhs) const
57{
Greg Clayton63094e02010-06-23 01:19:29 +000058 return m_opaque_ptr == rhs.m_opaque_ptr;
Chris Lattner24943d22010-06-08 16:52:24 +000059}
60
61bool
62SBSymbol::operator != (const SBSymbol &rhs) const
63{
Greg Clayton63094e02010-06-23 01:19:29 +000064 return m_opaque_ptr != rhs.m_opaque_ptr;
Chris Lattner24943d22010-06-08 16:52:24 +000065}
Caroline Tice98f930f2010-09-20 05:20:02 +000066
67bool
68SBSymbol::GetDescription (SBStream &description)
69{
70 if (m_opaque_ptr)
71 {
72 m_opaque_ptr->GetDescription (description.get(), lldb::eDescriptionLevelFull, NULL);
73 }
74 else
75 description.Printf ("No value");
76
77 return true;
78}
79
80PyObject *
81SBSymbol::__repr__ ()
82{
83 SBStream description;
84 description.ref();
85 GetDescription (description);
86 return PyString_FromString (description.GetData());
87}