brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · da2ef6c Raw
76 lines · cpp
1//===-- CFCMutableSet.cpp -------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "CFCMutableSet.h"10 11 12// CFCString constructor13CFCMutableSet::CFCMutableSet(CFMutableSetRef s)14    : CFCReleaser<CFMutableSetRef>(s) {}15 16// CFCMutableSet copy constructor17CFCMutableSet::CFCMutableSet(const CFCMutableSet &rhs) = default;18 19// CFCMutableSet copy constructor20const CFCMutableSet &CFCMutableSet::operator=(const CFCMutableSet &rhs) {21  if (this != &rhs)22    *this = rhs;23  return *this;24}25 26// Destructor27CFCMutableSet::~CFCMutableSet() = default;28 29CFIndex CFCMutableSet::GetCount() const {30  CFMutableSetRef set = get();31  if (set)32    return ::CFSetGetCount(set);33  return 0;34}35 36CFIndex CFCMutableSet::GetCountOfValue(const void *value) const {37  CFMutableSetRef set = get();38  if (set)39    return ::CFSetGetCountOfValue(set, value);40  return 0;41}42 43const void *CFCMutableSet::GetValue(const void *value) const {44  CFMutableSetRef set = get();45  if (set)46    return ::CFSetGetValue(set, value);47  return NULL;48}49 50const void *CFCMutableSet::AddValue(const void *value, bool can_create) {51  CFMutableSetRef set = get();52  if (set == NULL) {53    if (!can_create)54      return NULL;55    set = ::CFSetCreateMutable(kCFAllocatorDefault, 0, &kCFTypeSetCallBacks);56    reset(set);57  }58  if (set != NULL) {59    ::CFSetAddValue(set, value);60    return value;61  }62  return NULL;63}64 65void CFCMutableSet::RemoveValue(const void *value) {66  CFMutableSetRef set = get();67  if (set)68    ::CFSetRemoveValue(set, value);69}70 71void CFCMutableSet::RemoveAllValues() {72  CFMutableSetRef set = get();73  if (set)74    ::CFSetRemoveAllValues(set);75}76