CFCMutableDictionary.h revision f5af85a2946ed4e1ff4766829d328cfb4961f259
124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- CFCMutableDictionary.h ----------------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef CoreFoundationCPP_CFMutableDictionary_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define CoreFoundationCPP_CFMutableDictionary_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "CFCReleaser.h" 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CFCMutableDictionary : public CFCReleaser<CFMutableDictionaryRef> 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Constructors and Destructors 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner CFCMutableDictionary(CFMutableDictionaryRef s = NULL); 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner CFCMutableDictionary(const CFCMutableDictionary& rhs); 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual ~CFCMutableDictionary(); 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Operators 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const CFCMutableDictionary& 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator=(const CFCMutableDictionary& rhs); 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner CFIndex GetCount() const; 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner CFIndex GetCountOfKey(const void *value) const; 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner CFIndex GetCountOfValue(const void *value) const; 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void GetKeysAndValues(const void **keys, const void **values) const; 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const void * GetValue(const void *key) const; 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Boolean GetValueIfPresent(const void *key, const void **value_handle) const; 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValue(CFStringRef key, const void *value, bool can_create = false); 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValue(CFStringRef key, const void *value, bool can_create = false); 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueSInt8(CFStringRef key, int8_t value, bool can_create = false); 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueSInt8(CFStringRef key, int8_t value, bool can_create = false); 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueSInt16(CFStringRef key, int16_t value, bool can_create = false); 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueSInt16(CFStringRef key, int16_t value, bool can_create = false); 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueSInt32(CFStringRef key, int32_t value, bool can_create = false); 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueSInt32(CFStringRef key, int32_t value, bool can_create = false); 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueSInt64(CFStringRef key, int64_t value, bool can_create = false); 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueSInt64(CFStringRef key, int64_t value, bool can_create = false); 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueUInt8(CFStringRef key, uint8_t value, bool can_create = false); 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueUInt8(CFStringRef key, uint8_t value, bool can_create = false); 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueUInt16(CFStringRef key, uint16_t value, bool can_create = false); 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueUInt16(CFStringRef key, uint16_t value, bool can_create = false); 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueUInt32(CFStringRef key, uint32_t value, bool can_create = false); 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueUInt32(CFStringRef key, uint32_t value, bool can_create = false); 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueUInt64(CFStringRef key, uint64_t value, bool can_create = false); 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueUInt64(CFStringRef key, uint64_t value, bool can_create = false); 56f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata bool AddValueDouble(CFStringRef key, double value, bool can_create = false); 57f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata bool SetValueDouble(CFStringRef key, double value, bool can_create = false); 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool AddValueCString(CFStringRef key, const char *cstr, bool can_create = false); 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool SetValueCString(CFStringRef key, const char *cstr, bool can_create = false); 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void RemoveValue(const void *value); 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void ReplaceValue(const void *key, const void *value); 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void RemoveAllValues(); 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner CFMutableDictionaryRef Dictionary(bool can_create); 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Classes that inherit from CFCMutableDictionary can see and modify these 6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // For CFCMutableDictionary only 7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // CoreFoundationCPP_CFMutableDictionary_h_ 80