You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.9 KiB
77 lines
1.9 KiB
//===-- CFCMutableSet.cpp -------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "CFCMutableSet.h"
|
|
|
|
|
|
// 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)
|
|
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);
|
|
}
|