| //===-- 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); |
| } |