90 lines
2.5 KiB
C++
90 lines
2.5 KiB
C++
//===-- CFCMutableSet.cpp ---------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "CFCMutableSet.h"
|
|
|
|
// C Includes
|
|
// C++ Includes
|
|
// Other libraries and framework includes
|
|
// Project includes
|
|
|
|
//----------------------------------------------------------------------
|
|
// CFCString constructor
|
|
//----------------------------------------------------------------------
|
|
CFCMutableSet::CFCMutableSet(CFMutableSetRef s)
|
|
: CFCReleaser<CFMutableSetRef>(s) {}
|
|
|
|
//----------------------------------------------------------------------
|
|
// CFCMutableSet copy constructor
|
|
//----------------------------------------------------------------------
|
|
CFCMutableSet::CFCMutableSet(const CFCMutableSet &rhs)
|
|
: CFCReleaser<CFMutableSetRef>(rhs) {}
|
|
|
|
//----------------------------------------------------------------------
|
|
// CFCMutableSet copy constructor
|
|
//----------------------------------------------------------------------
|
|
const CFCMutableSet &CFCMutableSet::operator=(const CFCMutableSet &rhs) {
|
|
if (this != &rhs)
|
|
*this = rhs;
|
|
return *this;
|
|
}
|
|
|
|
//----------------------------------------------------------------------
|
|
// Destructor
|
|
//----------------------------------------------------------------------
|
|
CFCMutableSet::~CFCMutableSet() {}
|
|
|
|
CFIndex CFCMutableSet::GetCount() const {
|
|
CFMutableSetRef set = get();
|
|
if (set)
|
|
return ::CFSetGetCount(set);
|
|
return 0;
|
|
}
|
|
|
|
CFIndex CFCMutableSet::GetCountOfValue(const void *value) const {
|
|
CFMutableSetRef set = get();
|
|
if (set)
|
|
return ::CFSetGetCountOfValue(set, value);
|
|
return 0;
|
|
}
|
|
|
|
const void *CFCMutableSet::GetValue(const void *value) const {
|
|
CFMutableSetRef set = get();
|
|
if (set)
|
|
return ::CFSetGetValue(set, value);
|
|
return NULL;
|
|
}
|
|
|
|
const void *CFCMutableSet::AddValue(const void *value, bool can_create) {
|
|
CFMutableSetRef set = get();
|
|
if (set == NULL) {
|
|
if (can_create == false)
|
|
return NULL;
|
|
set = ::CFSetCreateMutable(kCFAllocatorDefault, 0, &kCFTypeSetCallBacks);
|
|
reset(set);
|
|
}
|
|
if (set != NULL) {
|
|
::CFSetAddValue(set, value);
|
|
return value;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
void CFCMutableSet::RemoveValue(const void *value) {
|
|
CFMutableSetRef set = get();
|
|
if (set)
|
|
::CFSetRemoveValue(set, value);
|
|
}
|
|
|
|
void CFCMutableSet::RemoveAllValues() {
|
|
CFMutableSetRef set = get();
|
|
if (set)
|
|
::CFSetRemoveAllValues(set);
|
|
}
|