forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			137 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
//===-- SBStringList.cpp ----------------------------------------*- C++ -*-===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "lldb/API/SBStringList.h"
 | 
						|
 | 
						|
#include "lldb/Core/StringList.h"
 | 
						|
 | 
						|
using namespace lldb;
 | 
						|
using namespace lldb_private;
 | 
						|
 | 
						|
SBStringList::SBStringList () :
 | 
						|
    m_opaque_ap ()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
SBStringList::SBStringList (const lldb_private::StringList *lldb_strings_ptr) :
 | 
						|
    m_opaque_ap ()
 | 
						|
{
 | 
						|
    if (lldb_strings_ptr)
 | 
						|
        m_opaque_ap.reset (new lldb_private::StringList (*lldb_strings_ptr));
 | 
						|
}
 | 
						|
 | 
						|
SBStringList::SBStringList (const SBStringList  &rhs) :
 | 
						|
    m_opaque_ap ()
 | 
						|
{
 | 
						|
    if (rhs.IsValid())
 | 
						|
        m_opaque_ap.reset (new lldb_private::StringList(*rhs));
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
const SBStringList &
 | 
						|
SBStringList::operator = (const SBStringList &rhs)
 | 
						|
{
 | 
						|
    if (this != &rhs)
 | 
						|
    {
 | 
						|
        if (rhs.IsValid())
 | 
						|
            m_opaque_ap.reset(new lldb_private::StringList(*rhs));
 | 
						|
        else
 | 
						|
            m_opaque_ap.reset();
 | 
						|
    }
 | 
						|
    return *this;
 | 
						|
}
 | 
						|
 | 
						|
SBStringList::~SBStringList ()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
const lldb_private::StringList *
 | 
						|
SBStringList::operator->() const
 | 
						|
{
 | 
						|
    return m_opaque_ap.get();
 | 
						|
}
 | 
						|
 | 
						|
const lldb_private::StringList &
 | 
						|
SBStringList::operator*() const
 | 
						|
{
 | 
						|
    return *m_opaque_ap;
 | 
						|
}
 | 
						|
 | 
						|
bool
 | 
						|
SBStringList::IsValid() const
 | 
						|
{
 | 
						|
    return (m_opaque_ap.get() != NULL);
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
SBStringList::AppendString (const char *str)
 | 
						|
{
 | 
						|
    if (str != NULL)
 | 
						|
    {
 | 
						|
        if (IsValid())
 | 
						|
            m_opaque_ap->AppendString (str);
 | 
						|
        else
 | 
						|
            m_opaque_ap.reset (new lldb_private::StringList (str));
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
SBStringList::AppendList (const char **strv, int strc)
 | 
						|
{
 | 
						|
    if ((strv != NULL)
 | 
						|
        && (strc > 0))
 | 
						|
    {
 | 
						|
        if (IsValid())
 | 
						|
            m_opaque_ap->AppendList (strv, strc);
 | 
						|
        else
 | 
						|
            m_opaque_ap.reset (new lldb_private::StringList (strv, strc));
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
SBStringList::AppendList (const SBStringList &strings)
 | 
						|
{
 | 
						|
    if (strings.IsValid())
 | 
						|
    {
 | 
						|
        if (! IsValid())
 | 
						|
            m_opaque_ap.reset (new lldb_private::StringList());
 | 
						|
        m_opaque_ap->AppendList (*(strings.m_opaque_ap));
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
uint32_t
 | 
						|
SBStringList::GetSize () const
 | 
						|
{
 | 
						|
    if (IsValid())
 | 
						|
    {
 | 
						|
        return m_opaque_ap->GetSize();
 | 
						|
    }
 | 
						|
    return 0;
 | 
						|
}
 | 
						|
 | 
						|
const char *
 | 
						|
SBStringList::GetStringAtIndex (size_t idx)
 | 
						|
{
 | 
						|
    if (IsValid())
 | 
						|
    {
 | 
						|
        return m_opaque_ap->GetStringAtIndex (idx);
 | 
						|
    }
 | 
						|
    return NULL;
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
SBStringList::Clear ()
 | 
						|
{
 | 
						|
    if (IsValid())
 | 
						|
    {
 | 
						|
        m_opaque_ap->Clear();
 | 
						|
    }
 | 
						|
}
 |