namespace axl::cf

namespace cf {

// typedefs

typedef DictionaryBase<CFDictionaryRef> Dictionary;
typedef TypeBase<CFTypeRef> Type;

// classes

class Data;

template <typename T>
class DictionaryBase;

class MutableDictionary;
class Number;
class SecScopedBookmark;
class String;

template <typename T>
class TypeBase;

class Url;

// global functions

sl::String
getStringFromCfString(CFStringRef cfString);

sl::String
cfTypeToString(
    CFTypeRef cfType,
    bool isVerbose = false
    );

sl::String
getTypeIdDescription(CFTypeID typeId);

CFTypeID
getStringTypeId();

CFTypeID
getBooleanTypeId();

CFTypeID
getNumberTypeId();

} // namespace cf