forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.7 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/Utility/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));
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
void SBStringList::AppendList(const StringList &strings) {
 | 
						|
  if (!IsValid())
 | 
						|
    m_opaque_ap.reset(new lldb_private::StringList());
 | 
						|
  m_opaque_ap->AppendList(strings);
 | 
						|
}
 | 
						|
 | 
						|
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;
 | 
						|
}
 | 
						|
 | 
						|
const char *SBStringList::GetStringAtIndex(size_t idx) const {
 | 
						|
  if (IsValid()) {
 | 
						|
    return m_opaque_ap->GetStringAtIndex(idx);
 | 
						|
  }
 | 
						|
  return NULL;
 | 
						|
}
 | 
						|
 | 
						|
void SBStringList::Clear() {
 | 
						|
  if (IsValid()) {
 | 
						|
    m_opaque_ap->Clear();
 | 
						|
  }
 | 
						|
}
 |