diff options
Diffstat (limited to 'source/Host/macosx/cfcpp/CFCMutableSet.cpp')
| -rw-r--r-- | source/Host/macosx/cfcpp/CFCMutableSet.cpp | 114 | 
1 files changed, 114 insertions, 0 deletions
| diff --git a/source/Host/macosx/cfcpp/CFCMutableSet.cpp b/source/Host/macosx/cfcpp/CFCMutableSet.cpp new file mode 100644 index 000000000000..afc09e180b6b --- /dev/null +++ b/source/Host/macosx/cfcpp/CFCMutableSet.cpp @@ -0,0 +1,114 @@ +//===-- 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); +} + | 
