1 //===-- CFCMutableSet.h -----------------------------------------*- C++ -*-===// 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-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLESET_H 10 #define LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLESET_H 11 12 #include "CFCReleaser.h" 13 14 class CFCMutableSet : public CFCReleaser<CFMutableSetRef> { 15 public: 16 // Constructors and Destructors 17 CFCMutableSet(CFMutableSetRef s = NULL); 18 CFCMutableSet(const CFCMutableSet &rhs); 19 virtual ~CFCMutableSet(); 20 21 // Operators 22 const CFCMutableSet &operator=(const CFCMutableSet &rhs); 23 24 CFIndex GetCount() const; 25 CFIndex GetCountOfValue(const void *value) const; 26 const void *GetValue(const void *value) const; 27 const void *AddValue(const void *value, bool can_create); 28 void RemoveValue(const void *value); 29 void RemoveAllValues(); 30 31 protected: 32 // Classes that inherit from CFCMutableSet can see and modify these 33 34 private: 35 // For CFCMutableSet only 36 }; 37 38 #endif // LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLESET_H 39