//===-- 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 (s) { } //---------------------------------------------------------------------- // CFCMutableSet copy constructor //---------------------------------------------------------------------- CFCMutableSet::CFCMutableSet(const CFCMutableSet& rhs) : CFCReleaser (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); }