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