67 lines · c
1//===-- CFCMutableDictionary.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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLEDICTIONARY_H10#define LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLEDICTIONARY_H11 12#include "CFCReleaser.h"13 14class CFCMutableDictionary : public CFCReleaser<CFMutableDictionaryRef> {15public:16 // Constructors and Destructors17 CFCMutableDictionary(CFMutableDictionaryRef s = NULL);18 CFCMutableDictionary(const CFCMutableDictionary &rhs);19 ~CFCMutableDictionary() override;20 21 // Operators22 const CFCMutableDictionary &operator=(const CFCMutableDictionary &rhs);23 24 CFIndex GetCount() const;25 CFIndex GetCountOfKey(const void *value) const;26 CFIndex GetCountOfValue(const void *value) const;27 void GetKeysAndValues(const void **keys, const void **values) const;28 const void *GetValue(const void *key) const;29 Boolean GetValueIfPresent(const void *key, const void **value_handle) const;30 bool AddValue(CFStringRef key, const void *value, bool can_create = false);31 bool SetValue(CFStringRef key, const void *value, bool can_create = false);32 bool AddValueSInt8(CFStringRef key, int8_t value, bool can_create = false);33 bool SetValueSInt8(CFStringRef key, int8_t value, bool can_create = false);34 bool AddValueSInt16(CFStringRef key, int16_t value, bool can_create = false);35 bool SetValueSInt16(CFStringRef key, int16_t value, bool can_create = false);36 bool AddValueSInt32(CFStringRef key, int32_t value, bool can_create = false);37 bool SetValueSInt32(CFStringRef key, int32_t value, bool can_create = false);38 bool AddValueSInt64(CFStringRef key, int64_t value, bool can_create = false);39 bool SetValueSInt64(CFStringRef key, int64_t value, bool can_create = false);40 bool AddValueUInt8(CFStringRef key, uint8_t value, bool can_create = false);41 bool SetValueUInt8(CFStringRef key, uint8_t value, bool can_create = false);42 bool AddValueUInt16(CFStringRef key, uint16_t value, bool can_create = false);43 bool SetValueUInt16(CFStringRef key, uint16_t value, bool can_create = false);44 bool AddValueUInt32(CFStringRef key, uint32_t value, bool can_create = false);45 bool SetValueUInt32(CFStringRef key, uint32_t value, bool can_create = false);46 bool AddValueUInt64(CFStringRef key, uint64_t value, bool can_create = false);47 bool SetValueUInt64(CFStringRef key, uint64_t value, bool can_create = false);48 bool AddValueDouble(CFStringRef key, double value, bool can_create = false);49 bool SetValueDouble(CFStringRef key, double value, bool can_create = false);50 bool AddValueCString(CFStringRef key, const char *cstr,51 bool can_create = false);52 bool SetValueCString(CFStringRef key, const char *cstr,53 bool can_create = false);54 void RemoveValue(const void *value);55 void ReplaceValue(const void *key, const void *value);56 void RemoveAllValues();57 CFMutableDictionaryRef Dictionary(bool can_create);58 59protected:60 // Classes that inherit from CFCMutableDictionary can see and modify these61 62private:63 // For CFCMutableDictionary only64};65 66#endif // LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLEDICTIONARY_H67