130fdc8d8SChris Lattner //===-- CFCMutableSet.h -----------------------------------------*- C++ -*-===// 230fdc8d8SChris Lattner // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 630fdc8d8SChris Lattner // 730fdc8d8SChris Lattner //===----------------------------------------------------------------------===// 830fdc8d8SChris Lattner 9cdc514e4SJonas Devlieghere #ifndef LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLESET_H 10cdc514e4SJonas Devlieghere #define LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLESET_H 1130fdc8d8SChris Lattner 1230fdc8d8SChris Lattner #include "CFCReleaser.h" 1330fdc8d8SChris Lattner 14b9c1b51eSKate Stone class CFCMutableSet : public CFCReleaser<CFMutableSetRef> { 1530fdc8d8SChris Lattner public: 1630fdc8d8SChris Lattner // Constructors and Destructors 1730fdc8d8SChris Lattner CFCMutableSet(CFMutableSetRef s = NULL); 1830fdc8d8SChris Lattner CFCMutableSet(const CFCMutableSet &rhs); 19*99166339SJonas Devlieghere ~CFCMutableSet() override; 2030fdc8d8SChris Lattner 2130fdc8d8SChris Lattner // Operators 22b9c1b51eSKate Stone const CFCMutableSet &operator=(const CFCMutableSet &rhs); 2330fdc8d8SChris Lattner 2430fdc8d8SChris Lattner CFIndex GetCount() const; 2530fdc8d8SChris Lattner CFIndex GetCountOfValue(const void *value) const; 2630fdc8d8SChris Lattner const void *GetValue(const void *value) const; 2730fdc8d8SChris Lattner const void *AddValue(const void *value, bool can_create); 2830fdc8d8SChris Lattner void RemoveValue(const void *value); 2930fdc8d8SChris Lattner void RemoveAllValues(); 3030fdc8d8SChris Lattner 3130fdc8d8SChris Lattner protected: 3230fdc8d8SChris Lattner // Classes that inherit from CFCMutableSet can see and modify these 3330fdc8d8SChris Lattner 3430fdc8d8SChris Lattner private: 3530fdc8d8SChris Lattner // For CFCMutableSet only 3630fdc8d8SChris Lattner }; 3730fdc8d8SChris Lattner 38cdc514e4SJonas Devlieghere #endif // LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLESET_H 39