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