blob: 4a422d765d42d00ec30731eb7784752ed330f12c [file] [log] [blame]
//===-- CFCMutableDictionary.h ----------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLEDICTIONARY_H
#define LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLEDICTIONARY_H
#include "CFCReleaser.h"
class CFCMutableDictionary : public CFCReleaser<CFMutableDictionaryRef> {
public:
// Constructors and Destructors
CFCMutableDictionary(CFMutableDictionaryRef s = NULL);
CFCMutableDictionary(const CFCMutableDictionary &rhs);
virtual ~CFCMutableDictionary();
// Operators
const CFCMutableDictionary &operator=(const CFCMutableDictionary &rhs);
CFIndex GetCount() const;
CFIndex GetCountOfKey(const void *value) const;
CFIndex GetCountOfValue(const void *value) const;
void GetKeysAndValues(const void **keys, const void **values) const;
const void *GetValue(const void *key) const;
Boolean GetValueIfPresent(const void *key, const void **value_handle) const;
bool AddValue(CFStringRef key, const void *value, bool can_create = false);
bool SetValue(CFStringRef key, const void *value, bool can_create = false);
bool AddValueSInt8(CFStringRef key, int8_t value, bool can_create = false);
bool SetValueSInt8(CFStringRef key, int8_t value, bool can_create = false);
bool AddValueSInt16(CFStringRef key, int16_t value, bool can_create = false);
bool SetValueSInt16(CFStringRef key, int16_t value, bool can_create = false);
bool AddValueSInt32(CFStringRef key, int32_t value, bool can_create = false);
bool SetValueSInt32(CFStringRef key, int32_t value, bool can_create = false);
bool AddValueSInt64(CFStringRef key, int64_t value, bool can_create = false);
bool SetValueSInt64(CFStringRef key, int64_t value, bool can_create = false);
bool AddValueUInt8(CFStringRef key, uint8_t value, bool can_create = false);
bool SetValueUInt8(CFStringRef key, uint8_t value, bool can_create = false);
bool AddValueUInt16(CFStringRef key, uint16_t value, bool can_create = false);
bool SetValueUInt16(CFStringRef key, uint16_t value, bool can_create = false);
bool AddValueUInt32(CFStringRef key, uint32_t value, bool can_create = false);
bool SetValueUInt32(CFStringRef key, uint32_t value, bool can_create = false);
bool AddValueUInt64(CFStringRef key, uint64_t value, bool can_create = false);
bool SetValueUInt64(CFStringRef key, uint64_t value, bool can_create = false);
bool AddValueDouble(CFStringRef key, double value, bool can_create = false);
bool SetValueDouble(CFStringRef key, double value, bool can_create = false);
bool AddValueCString(CFStringRef key, const char *cstr,
bool can_create = false);
bool SetValueCString(CFStringRef key, const char *cstr,
bool can_create = false);
void RemoveValue(const void *value);
void ReplaceValue(const void *key, const void *value);
void RemoveAllValues();
CFMutableDictionaryRef Dictionary(bool can_create);
protected:
// Classes that inherit from CFCMutableDictionary can see and modify these
private:
// For CFCMutableDictionary only
};
#endif // LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCMUTABLEDICTIONARY_H