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