diff options
Diffstat (limited to 'Mac/Modules/cf/_CFmodule.c')
| -rw-r--r-- | Mac/Modules/cf/_CFmodule.c | 4996 |
1 files changed, 0 insertions, 4996 deletions
diff --git a/Mac/Modules/cf/_CFmodule.c b/Mac/Modules/cf/_CFmodule.c deleted file mode 100644 index ee67c70..0000000 --- a/Mac/Modules/cf/_CFmodule.c +++ /dev/null @@ -1,4996 +0,0 @@ - -/* =========================== Module _CF =========================== */ - -#include "Python.h" - - - -#include "pymactoolbox.h" - -/* Macro to test whether a weak-loaded CFM function exists */ -#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ - }} while(0) - - -#include <CoreServices/CoreServices.h> - -#include "pycfbridge.h" - -#ifdef USE_TOOLBOX_OBJECT_GLUE -extern PyObject *_CFObj_New(CFTypeRef); -extern int _CFObj_Convert(PyObject *, CFTypeRef *); -#define CFObj_New _CFObj_New -#define CFObj_Convert _CFObj_Convert - -extern PyObject *_CFTypeRefObj_New(CFTypeRef); -extern int _CFTypeRefObj_Convert(PyObject *, CFTypeRef *); -#define CFTypeRefObj_New _CFTypeRefObj_New -#define CFTypeRefObj_Convert _CFTypeRefObj_Convert - -extern PyObject *_CFStringRefObj_New(CFStringRef); -extern int _CFStringRefObj_Convert(PyObject *, CFStringRef *); -#define CFStringRefObj_New _CFStringRefObj_New -#define CFStringRefObj_Convert _CFStringRefObj_Convert - -extern PyObject *_CFMutableStringRefObj_New(CFMutableStringRef); -extern int _CFMutableStringRefObj_Convert(PyObject *, CFMutableStringRef *); -#define CFMutableStringRefObj_New _CFMutableStringRefObj_New -#define CFMutableStringRefObj_Convert _CFMutableStringRefObj_Convert - -extern PyObject *_CFArrayRefObj_New(CFArrayRef); -extern int _CFArrayRefObj_Convert(PyObject *, CFArrayRef *); -#define CFArrayRefObj_New _CFArrayRefObj_New -#define CFArrayRefObj_Convert _CFArrayRefObj_Convert - -extern PyObject *_CFMutableArrayRefObj_New(CFMutableArrayRef); -extern int _CFMutableArrayRefObj_Convert(PyObject *, CFMutableArrayRef *); -#define CFMutableArrayRefObj_New _CFMutableArrayRefObj_New -#define CFMutableArrayRefObj_Convert _CFMutableArrayRefObj_Convert - -extern PyObject *_CFDataRefObj_New(CFDataRef); -extern int _CFDataRefObj_Convert(PyObject *, CFDataRef *); -#define CFDataRefObj_New _CFDataRefObj_New -#define CFDataRefObj_Convert _CFDataRefObj_Convert - -extern PyObject *_CFMutableDataRefObj_New(CFMutableDataRef); -extern int _CFMutableDataRefObj_Convert(PyObject *, CFMutableDataRef *); -#define CFMutableDataRefObj_New _CFMutableDataRefObj_New -#define CFMutableDataRefObj_Convert _CFMutableDataRefObj_Convert - -extern PyObject *_CFDictionaryRefObj_New(CFDictionaryRef); -extern int _CFDictionaryRefObj_Convert(PyObject *, CFDictionaryRef *); -#define CFDictionaryRefObj_New _CFDictionaryRefObj_New -#define CFDictionaryRefObj_Convert _CFDictionaryRefObj_Convert - -extern PyObject *_CFMutableDictionaryRefObj_New(CFMutableDictionaryRef); -extern int _CFMutableDictionaryRefObj_Convert(PyObject *, CFMutableDictionaryRef *); -#define CFMutableDictionaryRefObj_New _CFMutableDictionaryRefObj_New -#define CFMutableDictionaryRefObj_Convert _CFMutableDictionaryRefObj_Convert - -extern PyObject *_CFURLRefObj_New(CFURLRef); -extern int _CFURLRefObj_Convert(PyObject *, CFURLRef *); -extern int _OptionalCFURLRefObj_Convert(PyObject *, CFURLRef *); -#define CFURLRefObj_New _CFURLRefObj_New -#define CFURLRefObj_Convert _CFURLRefObj_Convert -#define OptionalCFURLRefObj_Convert _OptionalCFURLRefObj_Convert -#endif - -/* -** Parse/generate CFRange records -*/ -PyObject *CFRange_New(CFRange *itself) -{ - - return Py_BuildValue("ll", (long)itself->location, (long)itself->length); -} - -int -CFRange_Convert(PyObject *v, CFRange *p_itself) -{ - long location, length; - - if( !PyArg_ParseTuple(v, "ll", &location, &length) ) - return 0; - p_itself->location = (CFIndex)location; - p_itself->length = (CFIndex)length; - return 1; -} - -/* Optional CFURL argument or None (passed as NULL) */ -int -OptionalCFURLRefObj_Convert(PyObject *v, CFURLRef *p_itself) -{ - if ( v == Py_None ) { - p_itself = NULL; - return 1; - } - return CFURLRefObj_Convert(v, p_itself); -} - -static PyObject *CF_Error; - -/* --------------------- Object type CFTypeRef ---------------------- */ - -PyTypeObject CFTypeRef_Type; - -#define CFTypeRefObj_Check(x) ((x)->ob_type == &CFTypeRef_Type || PyObject_TypeCheck((x), &CFTypeRef_Type)) - -typedef struct CFTypeRefObject { - PyObject_HEAD - CFTypeRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFTypeRefObject; - -PyObject *CFTypeRefObj_New(CFTypeRef itself) -{ - CFTypeRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFTypeRefObject, &CFTypeRef_Type); - if (it == NULL) return NULL; - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFTypeRefObj_Convert(PyObject *v, CFTypeRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFTypeRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFTypeRef required"); - return 0; - } - *p_itself = ((CFTypeRefObject *)v)->ob_itself; - return 1; -} - -static void CFTypeRefObj_dealloc(CFTypeRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - self->ob_type->tp_free((PyObject *)self); -} - -static PyObject *CFTypeRefObj_CFGetTypeID(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeID _rv; -#ifndef CFGetTypeID - PyMac_PRECHECK(CFGetTypeID); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFGetTypeID(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFTypeRefObj_CFRetain(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeRef _rv; -#ifndef CFRetain - PyMac_PRECHECK(CFRetain); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFRetain(_self->ob_itself); - _res = Py_BuildValue("O&", - CFTypeRefObj_New, _rv); - return _res; -} - -static PyObject *CFTypeRefObj_CFRelease(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; -#ifndef CFRelease - PyMac_PRECHECK(CFRelease); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - CFRelease(_self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFTypeRefObj_CFGetRetainCount(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; -#ifndef CFGetRetainCount - PyMac_PRECHECK(CFGetRetainCount); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFGetRetainCount(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFTypeRefObj_CFEqual(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - CFTypeRef cf2; -#ifndef CFEqual - PyMac_PRECHECK(CFEqual); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFTypeRefObj_Convert, &cf2)) - return NULL; - _rv = CFEqual(_self->ob_itself, - cf2); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFTypeRefObj_CFHash(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFHashCode _rv; -#ifndef CFHash - PyMac_PRECHECK(CFHash); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFHash(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFTypeRefObj_CFCopyDescription(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFCopyDescription - PyMac_PRECHECK(CFCopyDescription); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFCopyDescription(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFTypeRefObj_CFPropertyListCreateXMLData(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDataRef _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFPropertyListCreateXMLData((CFAllocatorRef)NULL, - _self->ob_itself); - _res = Py_BuildValue("O&", - CFDataRefObj_New, _rv); - return _res; -} - -static PyObject *CFTypeRefObj_CFPropertyListCreateDeepCopy(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeRef _rv; - CFOptionFlags mutabilityOption; - if (!PyArg_ParseTuple(_args, "l", - &mutabilityOption)) - return NULL; - _rv = CFPropertyListCreateDeepCopy((CFAllocatorRef)NULL, - _self->ob_itself, - mutabilityOption); - _res = Py_BuildValue("O&", - CFTypeRefObj_New, _rv); - return _res; -} - -static PyObject *CFTypeRefObj_CFShow(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; -#ifndef CFShow - PyMac_PRECHECK(CFShow); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - CFShow(_self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFTypeRefObj_CFPropertyListCreateFromXMLData(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - - CFTypeRef _rv; - CFOptionFlags mutabilityOption; - CFStringRef errorString; - if (!PyArg_ParseTuple(_args, "l", - &mutabilityOption)) - return NULL; - _rv = CFPropertyListCreateFromXMLData((CFAllocatorRef)NULL, - _self->ob_itself, - mutabilityOption, - &errorString); - if (errorString) - CFRelease(errorString); - if (_rv == NULL) { - PyErr_SetString(PyExc_RuntimeError, "Parse error in XML data"); - return NULL; - } - _res = Py_BuildValue("O&", - CFTypeRefObj_New, _rv); - return _res; - -} - -static PyObject *CFTypeRefObj_toPython(CFTypeRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - - _res = PyCF_CF2Python(_self->ob_itself); - return _res; - -} - -static PyMethodDef CFTypeRefObj_methods[] = { - {"CFGetTypeID", (PyCFunction)CFTypeRefObj_CFGetTypeID, 1, - PyDoc_STR("() -> (CFTypeID _rv)")}, - {"CFRetain", (PyCFunction)CFTypeRefObj_CFRetain, 1, - PyDoc_STR("() -> (CFTypeRef _rv)")}, - {"CFRelease", (PyCFunction)CFTypeRefObj_CFRelease, 1, - PyDoc_STR("() -> None")}, - {"CFGetRetainCount", (PyCFunction)CFTypeRefObj_CFGetRetainCount, 1, - PyDoc_STR("() -> (CFIndex _rv)")}, - {"CFEqual", (PyCFunction)CFTypeRefObj_CFEqual, 1, - PyDoc_STR("(CFTypeRef cf2) -> (Boolean _rv)")}, - {"CFHash", (PyCFunction)CFTypeRefObj_CFHash, 1, - PyDoc_STR("() -> (CFHashCode _rv)")}, - {"CFCopyDescription", (PyCFunction)CFTypeRefObj_CFCopyDescription, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFPropertyListCreateXMLData", (PyCFunction)CFTypeRefObj_CFPropertyListCreateXMLData, 1, - PyDoc_STR("() -> (CFDataRef _rv)")}, - {"CFPropertyListCreateDeepCopy", (PyCFunction)CFTypeRefObj_CFPropertyListCreateDeepCopy, 1, - PyDoc_STR("(CFOptionFlags mutabilityOption) -> (CFTypeRef _rv)")}, - {"CFShow", (PyCFunction)CFTypeRefObj_CFShow, 1, - PyDoc_STR("() -> None")}, - {"CFPropertyListCreateFromXMLData", (PyCFunction)CFTypeRefObj_CFPropertyListCreateFromXMLData, 1, - PyDoc_STR("(CFOptionFlags mutabilityOption) -> (CFTypeRefObj)")}, - {"toPython", (PyCFunction)CFTypeRefObj_toPython, 1, - PyDoc_STR("() -> (python_object)")}, - {NULL, NULL, 0} -}; - -#define CFTypeRefObj_getsetlist NULL - - -static int CFTypeRefObj_compare(CFTypeRefObject *self, CFTypeRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFTypeRefObj_repr(CFTypeRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFTypeRef type-%d object at 0x%8.8x for 0x%8.8x>", (int)CFGetTypeID(self->ob_itself), (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFTypeRefObj_hash(CFTypeRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFTypeRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFTypeRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFTypeRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFTypeRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFTypeRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFTypeRefObject *)self)->ob_itself = NULL; - ((CFTypeRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFTypeRefObj_tp_free PyObject_Del - - -PyTypeObject CFTypeRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFTypeRef", /*tp_name*/ - sizeof(CFTypeRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFTypeRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFTypeRefObj_compare, /*tp_compare*/ - (reprfunc) CFTypeRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFTypeRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFTypeRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFTypeRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFTypeRefObj_tp_init, /* tp_init */ - CFTypeRefObj_tp_alloc, /* tp_alloc */ - CFTypeRefObj_tp_new, /* tp_new */ - CFTypeRefObj_tp_free, /* tp_free */ -}; - -/* ------------------- End object type CFTypeRef -------------------- */ - - -/* --------------------- Object type CFArrayRef --------------------- */ - -PyTypeObject CFArrayRef_Type; - -#define CFArrayRefObj_Check(x) ((x)->ob_type == &CFArrayRef_Type || PyObject_TypeCheck((x), &CFArrayRef_Type)) - -typedef struct CFArrayRefObject { - PyObject_HEAD - CFArrayRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFArrayRefObject; - -PyObject *CFArrayRefObj_New(CFArrayRef itself) -{ - CFArrayRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFArrayRefObject, &CFArrayRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFArrayRefObj_Convert(PyObject *v, CFArrayRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFArrayRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFArrayRef required"); - return 0; - } - *p_itself = ((CFArrayRefObject *)v)->ob_itself; - return 1; -} - -static void CFArrayRefObj_dealloc(CFArrayRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFTypeRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFArrayRefObj_CFArrayCreateCopy(CFArrayRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFArrayRef _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFArrayCreateCopy((CFAllocatorRef)NULL, - _self->ob_itself); - _res = Py_BuildValue("O&", - CFArrayRefObj_New, _rv); - return _res; -} - -static PyObject *CFArrayRefObj_CFArrayGetCount(CFArrayRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; -#ifndef CFArrayGetCount - PyMac_PRECHECK(CFArrayGetCount); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFArrayGetCount(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFArrayRefObj_CFStringCreateByCombiningStrings(CFArrayRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringRef separatorString; - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &separatorString)) - return NULL; - _rv = CFStringCreateByCombiningStrings((CFAllocatorRef)NULL, - _self->ob_itself, - separatorString); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyMethodDef CFArrayRefObj_methods[] = { - {"CFArrayCreateCopy", (PyCFunction)CFArrayRefObj_CFArrayCreateCopy, 1, - PyDoc_STR("() -> (CFArrayRef _rv)")}, - {"CFArrayGetCount", (PyCFunction)CFArrayRefObj_CFArrayGetCount, 1, - PyDoc_STR("() -> (CFIndex _rv)")}, - {"CFStringCreateByCombiningStrings", (PyCFunction)CFArrayRefObj_CFStringCreateByCombiningStrings, 1, - PyDoc_STR("(CFStringRef separatorString) -> (CFStringRef _rv)")}, - {NULL, NULL, 0} -}; - -#define CFArrayRefObj_getsetlist NULL - - -static int CFArrayRefObj_compare(CFArrayRefObject *self, CFArrayRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFArrayRefObj_repr(CFArrayRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFArrayRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFArrayRefObj_hash(CFArrayRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFArrayRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFArrayRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFArrayRefObj_Convert, &itself)) - { - ((CFArrayRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFArrayRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFArrayRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFArrayRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFArrayRefObject *)self)->ob_itself = NULL; - ((CFArrayRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFArrayRefObj_tp_free PyObject_Del - - -PyTypeObject CFArrayRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFArrayRef", /*tp_name*/ - sizeof(CFArrayRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFArrayRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFArrayRefObj_compare, /*tp_compare*/ - (reprfunc) CFArrayRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFArrayRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFArrayRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFArrayRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFArrayRefObj_tp_init, /* tp_init */ - CFArrayRefObj_tp_alloc, /* tp_alloc */ - CFArrayRefObj_tp_new, /* tp_new */ - CFArrayRefObj_tp_free, /* tp_free */ -}; - -/* ------------------- End object type CFArrayRef ------------------- */ - - -/* ----------------- Object type CFMutableArrayRef ------------------ */ - -PyTypeObject CFMutableArrayRef_Type; - -#define CFMutableArrayRefObj_Check(x) ((x)->ob_type == &CFMutableArrayRef_Type || PyObject_TypeCheck((x), &CFMutableArrayRef_Type)) - -typedef struct CFMutableArrayRefObject { - PyObject_HEAD - CFMutableArrayRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFMutableArrayRefObject; - -PyObject *CFMutableArrayRefObj_New(CFMutableArrayRef itself) -{ - CFMutableArrayRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFMutableArrayRefObject, &CFMutableArrayRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFMutableArrayRefObj_Convert(PyObject *v, CFMutableArrayRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFMutableArrayRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFMutableArrayRef required"); - return 0; - } - *p_itself = ((CFMutableArrayRefObject *)v)->ob_itself; - return 1; -} - -static void CFMutableArrayRefObj_dealloc(CFMutableArrayRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFArrayRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFMutableArrayRefObj_CFArrayRemoveValueAtIndex(CFMutableArrayRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex idx; -#ifndef CFArrayRemoveValueAtIndex - PyMac_PRECHECK(CFArrayRemoveValueAtIndex); -#endif - if (!PyArg_ParseTuple(_args, "l", - &idx)) - return NULL; - CFArrayRemoveValueAtIndex(_self->ob_itself, - idx); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableArrayRefObj_CFArrayRemoveAllValues(CFMutableArrayRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; -#ifndef CFArrayRemoveAllValues - PyMac_PRECHECK(CFArrayRemoveAllValues); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - CFArrayRemoveAllValues(_self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableArrayRefObj_CFArrayExchangeValuesAtIndices(CFMutableArrayRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex idx1; - CFIndex idx2; -#ifndef CFArrayExchangeValuesAtIndices - PyMac_PRECHECK(CFArrayExchangeValuesAtIndices); -#endif - if (!PyArg_ParseTuple(_args, "ll", - &idx1, - &idx2)) - return NULL; - CFArrayExchangeValuesAtIndices(_self->ob_itself, - idx1, - idx2); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableArrayRefObj_CFArrayAppendArray(CFMutableArrayRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFArrayRef otherArray; - CFRange otherRange; -#ifndef CFArrayAppendArray - PyMac_PRECHECK(CFArrayAppendArray); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CFArrayRefObj_Convert, &otherArray, - CFRange_Convert, &otherRange)) - return NULL; - CFArrayAppendArray(_self->ob_itself, - otherArray, - otherRange); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyMethodDef CFMutableArrayRefObj_methods[] = { - {"CFArrayRemoveValueAtIndex", (PyCFunction)CFMutableArrayRefObj_CFArrayRemoveValueAtIndex, 1, - PyDoc_STR("(CFIndex idx) -> None")}, - {"CFArrayRemoveAllValues", (PyCFunction)CFMutableArrayRefObj_CFArrayRemoveAllValues, 1, - PyDoc_STR("() -> None")}, - {"CFArrayExchangeValuesAtIndices", (PyCFunction)CFMutableArrayRefObj_CFArrayExchangeValuesAtIndices, 1, - PyDoc_STR("(CFIndex idx1, CFIndex idx2) -> None")}, - {"CFArrayAppendArray", (PyCFunction)CFMutableArrayRefObj_CFArrayAppendArray, 1, - PyDoc_STR("(CFArrayRef otherArray, CFRange otherRange) -> None")}, - {NULL, NULL, 0} -}; - -#define CFMutableArrayRefObj_getsetlist NULL - - -static int CFMutableArrayRefObj_compare(CFMutableArrayRefObject *self, CFMutableArrayRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFMutableArrayRefObj_repr(CFMutableArrayRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFMutableArrayRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFMutableArrayRefObj_hash(CFMutableArrayRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFMutableArrayRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFMutableArrayRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFMutableArrayRefObj_Convert, &itself)) - { - ((CFMutableArrayRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFMutableArrayRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFMutableArrayRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFMutableArrayRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFMutableArrayRefObject *)self)->ob_itself = NULL; - ((CFMutableArrayRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFMutableArrayRefObj_tp_free PyObject_Del - - -PyTypeObject CFMutableArrayRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFMutableArrayRef", /*tp_name*/ - sizeof(CFMutableArrayRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFMutableArrayRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFMutableArrayRefObj_compare, /*tp_compare*/ - (reprfunc) CFMutableArrayRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFMutableArrayRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFMutableArrayRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFMutableArrayRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFMutableArrayRefObj_tp_init, /* tp_init */ - CFMutableArrayRefObj_tp_alloc, /* tp_alloc */ - CFMutableArrayRefObj_tp_new, /* tp_new */ - CFMutableArrayRefObj_tp_free, /* tp_free */ -}; - -/* --------------- End object type CFMutableArrayRef ---------------- */ - - -/* ------------------ Object type CFDictionaryRef ------------------- */ - -PyTypeObject CFDictionaryRef_Type; - -#define CFDictionaryRefObj_Check(x) ((x)->ob_type == &CFDictionaryRef_Type || PyObject_TypeCheck((x), &CFDictionaryRef_Type)) - -typedef struct CFDictionaryRefObject { - PyObject_HEAD - CFDictionaryRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFDictionaryRefObject; - -PyObject *CFDictionaryRefObj_New(CFDictionaryRef itself) -{ - CFDictionaryRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFDictionaryRefObject, &CFDictionaryRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFDictionaryRefObj_Convert(PyObject *v, CFDictionaryRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFDictionaryRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFDictionaryRef required"); - return 0; - } - *p_itself = ((CFDictionaryRefObject *)v)->ob_itself; - return 1; -} - -static void CFDictionaryRefObj_dealloc(CFDictionaryRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFTypeRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFDictionaryRefObj_CFDictionaryCreateCopy(CFDictionaryRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDictionaryRef _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFDictionaryCreateCopy((CFAllocatorRef)NULL, - _self->ob_itself); - _res = Py_BuildValue("O&", - CFDictionaryRefObj_New, _rv); - return _res; -} - -static PyObject *CFDictionaryRefObj_CFDictionaryGetCount(CFDictionaryRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; -#ifndef CFDictionaryGetCount - PyMac_PRECHECK(CFDictionaryGetCount); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFDictionaryGetCount(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyMethodDef CFDictionaryRefObj_methods[] = { - {"CFDictionaryCreateCopy", (PyCFunction)CFDictionaryRefObj_CFDictionaryCreateCopy, 1, - PyDoc_STR("() -> (CFDictionaryRef _rv)")}, - {"CFDictionaryGetCount", (PyCFunction)CFDictionaryRefObj_CFDictionaryGetCount, 1, - PyDoc_STR("() -> (CFIndex _rv)")}, - {NULL, NULL, 0} -}; - -#define CFDictionaryRefObj_getsetlist NULL - - -static int CFDictionaryRefObj_compare(CFDictionaryRefObject *self, CFDictionaryRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFDictionaryRefObj_repr(CFDictionaryRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFDictionaryRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFDictionaryRefObj_hash(CFDictionaryRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFDictionaryRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFDictionaryRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFDictionaryRefObj_Convert, &itself)) - { - ((CFDictionaryRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFDictionaryRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFDictionaryRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFDictionaryRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFDictionaryRefObject *)self)->ob_itself = NULL; - ((CFDictionaryRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFDictionaryRefObj_tp_free PyObject_Del - - -PyTypeObject CFDictionaryRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFDictionaryRef", /*tp_name*/ - sizeof(CFDictionaryRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFDictionaryRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFDictionaryRefObj_compare, /*tp_compare*/ - (reprfunc) CFDictionaryRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFDictionaryRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFDictionaryRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFDictionaryRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFDictionaryRefObj_tp_init, /* tp_init */ - CFDictionaryRefObj_tp_alloc, /* tp_alloc */ - CFDictionaryRefObj_tp_new, /* tp_new */ - CFDictionaryRefObj_tp_free, /* tp_free */ -}; - -/* ---------------- End object type CFDictionaryRef ----------------- */ - - -/* --------------- Object type CFMutableDictionaryRef --------------- */ - -PyTypeObject CFMutableDictionaryRef_Type; - -#define CFMutableDictionaryRefObj_Check(x) ((x)->ob_type == &CFMutableDictionaryRef_Type || PyObject_TypeCheck((x), &CFMutableDictionaryRef_Type)) - -typedef struct CFMutableDictionaryRefObject { - PyObject_HEAD - CFMutableDictionaryRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFMutableDictionaryRefObject; - -PyObject *CFMutableDictionaryRefObj_New(CFMutableDictionaryRef itself) -{ - CFMutableDictionaryRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFMutableDictionaryRefObject, &CFMutableDictionaryRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFMutableDictionaryRefObj_Convert(PyObject *v, CFMutableDictionaryRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFMutableDictionaryRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFMutableDictionaryRef required"); - return 0; - } - *p_itself = ((CFMutableDictionaryRefObject *)v)->ob_itself; - return 1; -} - -static void CFMutableDictionaryRefObj_dealloc(CFMutableDictionaryRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFDictionaryRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFMutableDictionaryRefObj_CFDictionaryRemoveAllValues(CFMutableDictionaryRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; -#ifndef CFDictionaryRemoveAllValues - PyMac_PRECHECK(CFDictionaryRemoveAllValues); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - CFDictionaryRemoveAllValues(_self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyMethodDef CFMutableDictionaryRefObj_methods[] = { - {"CFDictionaryRemoveAllValues", (PyCFunction)CFMutableDictionaryRefObj_CFDictionaryRemoveAllValues, 1, - PyDoc_STR("() -> None")}, - {NULL, NULL, 0} -}; - -#define CFMutableDictionaryRefObj_getsetlist NULL - - -static int CFMutableDictionaryRefObj_compare(CFMutableDictionaryRefObject *self, CFMutableDictionaryRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFMutableDictionaryRefObj_repr(CFMutableDictionaryRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFMutableDictionaryRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFMutableDictionaryRefObj_hash(CFMutableDictionaryRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFMutableDictionaryRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFMutableDictionaryRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFMutableDictionaryRefObj_Convert, &itself)) - { - ((CFMutableDictionaryRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFMutableDictionaryRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFMutableDictionaryRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFMutableDictionaryRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFMutableDictionaryRefObject *)self)->ob_itself = NULL; - ((CFMutableDictionaryRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFMutableDictionaryRefObj_tp_free PyObject_Del - - -PyTypeObject CFMutableDictionaryRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFMutableDictionaryRef", /*tp_name*/ - sizeof(CFMutableDictionaryRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFMutableDictionaryRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFMutableDictionaryRefObj_compare, /*tp_compare*/ - (reprfunc) CFMutableDictionaryRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFMutableDictionaryRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFMutableDictionaryRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFMutableDictionaryRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFMutableDictionaryRefObj_tp_init, /* tp_init */ - CFMutableDictionaryRefObj_tp_alloc, /* tp_alloc */ - CFMutableDictionaryRefObj_tp_new, /* tp_new */ - CFMutableDictionaryRefObj_tp_free, /* tp_free */ -}; - -/* ------------- End object type CFMutableDictionaryRef ------------- */ - - -/* --------------------- Object type CFDataRef ---------------------- */ - -PyTypeObject CFDataRef_Type; - -#define CFDataRefObj_Check(x) ((x)->ob_type == &CFDataRef_Type || PyObject_TypeCheck((x), &CFDataRef_Type)) - -typedef struct CFDataRefObject { - PyObject_HEAD - CFDataRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFDataRefObject; - -PyObject *CFDataRefObj_New(CFDataRef itself) -{ - CFDataRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFDataRefObject, &CFDataRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFDataRefObj_Convert(PyObject *v, CFDataRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - if (PyString_Check(v)) { - char *cStr; - Py_ssize_t cLen; - if( PyString_AsStringAndSize(v, &cStr, &cLen) < 0 ) return 0; - *p_itself = CFDataCreate((CFAllocatorRef)NULL, (unsigned char *)cStr, cLen); - return 1; - } - - if (!CFDataRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFDataRef required"); - return 0; - } - *p_itself = ((CFDataRefObject *)v)->ob_itself; - return 1; -} - -static void CFDataRefObj_dealloc(CFDataRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFTypeRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFDataRefObj_CFDataCreateCopy(CFDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDataRef _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFDataCreateCopy((CFAllocatorRef)NULL, - _self->ob_itself); - _res = Py_BuildValue("O&", - CFDataRefObj_New, _rv); - return _res; -} - -static PyObject *CFDataRefObj_CFDataGetLength(CFDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; -#ifndef CFDataGetLength - PyMac_PRECHECK(CFDataGetLength); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFDataGetLength(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFDataRefObj_CFStringCreateFromExternalRepresentation(CFDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringEncoding encoding; - if (!PyArg_ParseTuple(_args, "l", - &encoding)) - return NULL; - _rv = CFStringCreateFromExternalRepresentation((CFAllocatorRef)NULL, - _self->ob_itself, - encoding); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFDataRefObj_CFDataGetData(CFDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - - int size = CFDataGetLength(_self->ob_itself); - char *data = (char *)CFDataGetBytePtr(_self->ob_itself); - - _res = (PyObject *)PyString_FromStringAndSize(data, size); - return _res; - -} - -static PyMethodDef CFDataRefObj_methods[] = { - {"CFDataCreateCopy", (PyCFunction)CFDataRefObj_CFDataCreateCopy, 1, - PyDoc_STR("() -> (CFDataRef _rv)")}, - {"CFDataGetLength", (PyCFunction)CFDataRefObj_CFDataGetLength, 1, - PyDoc_STR("() -> (CFIndex _rv)")}, - {"CFStringCreateFromExternalRepresentation", (PyCFunction)CFDataRefObj_CFStringCreateFromExternalRepresentation, 1, - PyDoc_STR("(CFStringEncoding encoding) -> (CFStringRef _rv)")}, - {"CFDataGetData", (PyCFunction)CFDataRefObj_CFDataGetData, 1, - PyDoc_STR("() -> (string _rv)")}, - {NULL, NULL, 0} -}; - -#define CFDataRefObj_getsetlist NULL - - -static int CFDataRefObj_compare(CFDataRefObject *self, CFDataRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFDataRefObj_repr(CFDataRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFDataRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFDataRefObj_hash(CFDataRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFDataRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFDataRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFDataRefObj_Convert, &itself)) - { - ((CFDataRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFDataRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFDataRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFDataRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFDataRefObject *)self)->ob_itself = NULL; - ((CFDataRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFDataRefObj_tp_free PyObject_Del - - -PyTypeObject CFDataRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFDataRef", /*tp_name*/ - sizeof(CFDataRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFDataRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFDataRefObj_compare, /*tp_compare*/ - (reprfunc) CFDataRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFDataRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFDataRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFDataRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFDataRefObj_tp_init, /* tp_init */ - CFDataRefObj_tp_alloc, /* tp_alloc */ - CFDataRefObj_tp_new, /* tp_new */ - CFDataRefObj_tp_free, /* tp_free */ -}; - -/* ------------------- End object type CFDataRef -------------------- */ - - -/* ------------------ Object type CFMutableDataRef ------------------ */ - -PyTypeObject CFMutableDataRef_Type; - -#define CFMutableDataRefObj_Check(x) ((x)->ob_type == &CFMutableDataRef_Type || PyObject_TypeCheck((x), &CFMutableDataRef_Type)) - -typedef struct CFMutableDataRefObject { - PyObject_HEAD - CFMutableDataRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFMutableDataRefObject; - -PyObject *CFMutableDataRefObj_New(CFMutableDataRef itself) -{ - CFMutableDataRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFMutableDataRefObject, &CFMutableDataRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFMutableDataRefObj_Convert(PyObject *v, CFMutableDataRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFMutableDataRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFMutableDataRef required"); - return 0; - } - *p_itself = ((CFMutableDataRefObject *)v)->ob_itself; - return 1; -} - -static void CFMutableDataRefObj_dealloc(CFMutableDataRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFDataRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFMutableDataRefObj_CFDataSetLength(CFMutableDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex length; -#ifndef CFDataSetLength - PyMac_PRECHECK(CFDataSetLength); -#endif - if (!PyArg_ParseTuple(_args, "l", - &length)) - return NULL; - CFDataSetLength(_self->ob_itself, - length); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableDataRefObj_CFDataIncreaseLength(CFMutableDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex extraLength; -#ifndef CFDataIncreaseLength - PyMac_PRECHECK(CFDataIncreaseLength); -#endif - if (!PyArg_ParseTuple(_args, "l", - &extraLength)) - return NULL; - CFDataIncreaseLength(_self->ob_itself, - extraLength); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableDataRefObj_CFDataAppendBytes(CFMutableDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - unsigned char *bytes__in__; - long bytes__len__; - int bytes__in_len__; -#ifndef CFDataAppendBytes - PyMac_PRECHECK(CFDataAppendBytes); -#endif - if (!PyArg_ParseTuple(_args, "s#", - &bytes__in__, &bytes__in_len__)) - return NULL; - bytes__len__ = bytes__in_len__; - CFDataAppendBytes(_self->ob_itself, - bytes__in__, bytes__len__); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableDataRefObj_CFDataReplaceBytes(CFMutableDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFRange range; - unsigned char *newBytes__in__; - long newBytes__len__; - int newBytes__in_len__; -#ifndef CFDataReplaceBytes - PyMac_PRECHECK(CFDataReplaceBytes); -#endif - if (!PyArg_ParseTuple(_args, "O&s#", - CFRange_Convert, &range, - &newBytes__in__, &newBytes__in_len__)) - return NULL; - newBytes__len__ = newBytes__in_len__; - CFDataReplaceBytes(_self->ob_itself, - range, - newBytes__in__, newBytes__len__); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableDataRefObj_CFDataDeleteBytes(CFMutableDataRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFRange range; -#ifndef CFDataDeleteBytes - PyMac_PRECHECK(CFDataDeleteBytes); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFRange_Convert, &range)) - return NULL; - CFDataDeleteBytes(_self->ob_itself, - range); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyMethodDef CFMutableDataRefObj_methods[] = { - {"CFDataSetLength", (PyCFunction)CFMutableDataRefObj_CFDataSetLength, 1, - PyDoc_STR("(CFIndex length) -> None")}, - {"CFDataIncreaseLength", (PyCFunction)CFMutableDataRefObj_CFDataIncreaseLength, 1, - PyDoc_STR("(CFIndex extraLength) -> None")}, - {"CFDataAppendBytes", (PyCFunction)CFMutableDataRefObj_CFDataAppendBytes, 1, - PyDoc_STR("(Buffer bytes) -> None")}, - {"CFDataReplaceBytes", (PyCFunction)CFMutableDataRefObj_CFDataReplaceBytes, 1, - PyDoc_STR("(CFRange range, Buffer newBytes) -> None")}, - {"CFDataDeleteBytes", (PyCFunction)CFMutableDataRefObj_CFDataDeleteBytes, 1, - PyDoc_STR("(CFRange range) -> None")}, - {NULL, NULL, 0} -}; - -#define CFMutableDataRefObj_getsetlist NULL - - -static int CFMutableDataRefObj_compare(CFMutableDataRefObject *self, CFMutableDataRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFMutableDataRefObj_repr(CFMutableDataRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFMutableDataRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFMutableDataRefObj_hash(CFMutableDataRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFMutableDataRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFMutableDataRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFMutableDataRefObj_Convert, &itself)) - { - ((CFMutableDataRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFMutableDataRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFMutableDataRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFMutableDataRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFMutableDataRefObject *)self)->ob_itself = NULL; - ((CFMutableDataRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFMutableDataRefObj_tp_free PyObject_Del - - -PyTypeObject CFMutableDataRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFMutableDataRef", /*tp_name*/ - sizeof(CFMutableDataRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFMutableDataRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFMutableDataRefObj_compare, /*tp_compare*/ - (reprfunc) CFMutableDataRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFMutableDataRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFMutableDataRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFMutableDataRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFMutableDataRefObj_tp_init, /* tp_init */ - CFMutableDataRefObj_tp_alloc, /* tp_alloc */ - CFMutableDataRefObj_tp_new, /* tp_new */ - CFMutableDataRefObj_tp_free, /* tp_free */ -}; - -/* ---------------- End object type CFMutableDataRef ---------------- */ - - -/* -------------------- Object type CFStringRef --------------------- */ - -PyTypeObject CFStringRef_Type; - -#define CFStringRefObj_Check(x) ((x)->ob_type == &CFStringRef_Type || PyObject_TypeCheck((x), &CFStringRef_Type)) - -typedef struct CFStringRefObject { - PyObject_HEAD - CFStringRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFStringRefObject; - -PyObject *CFStringRefObj_New(CFStringRef itself) -{ - CFStringRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFStringRefObject, &CFStringRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFStringRefObj_Convert(PyObject *v, CFStringRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - if (PyString_Check(v)) { - char *cStr; - if (!PyArg_Parse(v, "es", "ascii", &cStr)) - return 0; - *p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII); - PyMem_Free(cStr); - return 1; - } - if (PyUnicode_Check(v)) { - /* We use the CF types here, if Python was configured differently that will give an error */ - CFIndex size = PyUnicode_GetSize(v); - UniChar *unichars = PyUnicode_AsUnicode(v); - if (!unichars) return 0; - *p_itself = CFStringCreateWithCharacters((CFAllocatorRef)NULL, unichars, size); - return 1; - } - - - if (!CFStringRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFStringRef required"); - return 0; - } - *p_itself = ((CFStringRefObject *)v)->ob_itself; - return 1; -} - -static void CFStringRefObj_dealloc(CFStringRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFTypeRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFStringRefObj_CFStringCreateWithSubstring(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFRange range; - if (!PyArg_ParseTuple(_args, "O&", - CFRange_Convert, &range)) - return NULL; - _rv = CFStringCreateWithSubstring((CFAllocatorRef)NULL, - _self->ob_itself, - range); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringCreateCopy(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringCreateCopy((CFAllocatorRef)NULL, - _self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringGetLength(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; -#ifndef CFStringGetLength - PyMac_PRECHECK(CFStringGetLength); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringGetLength(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringGetBytes(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; - CFRange range; - CFStringEncoding encoding; - UInt8 lossByte; - Boolean isExternalRepresentation; - UInt8 buffer; - CFIndex maxBufLen; - CFIndex usedBufLen; -#ifndef CFStringGetBytes - PyMac_PRECHECK(CFStringGetBytes); -#endif - if (!PyArg_ParseTuple(_args, "O&lbll", - CFRange_Convert, &range, - &encoding, - &lossByte, - &isExternalRepresentation, - &maxBufLen)) - return NULL; - _rv = CFStringGetBytes(_self->ob_itself, - range, - encoding, - lossByte, - isExternalRepresentation, - &buffer, - maxBufLen, - &usedBufLen); - _res = Py_BuildValue("lbl", - _rv, - buffer, - usedBufLen); - return _res; -} - -static PyObject *CFStringRefObj_CFStringCreateExternalRepresentation(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDataRef _rv; - CFStringEncoding encoding; - UInt8 lossByte; - if (!PyArg_ParseTuple(_args, "lb", - &encoding, - &lossByte)) - return NULL; - _rv = CFStringCreateExternalRepresentation((CFAllocatorRef)NULL, - _self->ob_itself, - encoding, - lossByte); - _res = Py_BuildValue("O&", - CFDataRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringGetSmallestEncoding(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringEncoding _rv; -#ifndef CFStringGetSmallestEncoding - PyMac_PRECHECK(CFStringGetSmallestEncoding); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringGetSmallestEncoding(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringGetFastestEncoding(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringEncoding _rv; -#ifndef CFStringGetFastestEncoding - PyMac_PRECHECK(CFStringGetFastestEncoding); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringGetFastestEncoding(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringCompareWithOptions(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFComparisonResult _rv; - CFStringRef theString2; - CFRange rangeToCompare; - CFOptionFlags compareOptions; -#ifndef CFStringCompareWithOptions - PyMac_PRECHECK(CFStringCompareWithOptions); -#endif - if (!PyArg_ParseTuple(_args, "O&O&l", - CFStringRefObj_Convert, &theString2, - CFRange_Convert, &rangeToCompare, - &compareOptions)) - return NULL; - _rv = CFStringCompareWithOptions(_self->ob_itself, - theString2, - rangeToCompare, - compareOptions); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringCompare(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFComparisonResult _rv; - CFStringRef theString2; - CFOptionFlags compareOptions; -#ifndef CFStringCompare - PyMac_PRECHECK(CFStringCompare); -#endif - if (!PyArg_ParseTuple(_args, "O&l", - CFStringRefObj_Convert, &theString2, - &compareOptions)) - return NULL; - _rv = CFStringCompare(_self->ob_itself, - theString2, - compareOptions); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringFindWithOptions(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - CFStringRef stringToFind; - CFRange rangeToSearch; - CFOptionFlags searchOptions; - CFRange result; -#ifndef CFStringFindWithOptions - PyMac_PRECHECK(CFStringFindWithOptions); -#endif - if (!PyArg_ParseTuple(_args, "O&O&l", - CFStringRefObj_Convert, &stringToFind, - CFRange_Convert, &rangeToSearch, - &searchOptions)) - return NULL; - _rv = CFStringFindWithOptions(_self->ob_itself, - stringToFind, - rangeToSearch, - searchOptions, - &result); - _res = Py_BuildValue("lO&", - _rv, - CFRange_New, result); - return _res; -} - -static PyObject *CFStringRefObj_CFStringCreateArrayWithFindResults(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFArrayRef _rv; - CFStringRef stringToFind; - CFRange rangeToSearch; - CFOptionFlags compareOptions; - if (!PyArg_ParseTuple(_args, "O&O&l", - CFStringRefObj_Convert, &stringToFind, - CFRange_Convert, &rangeToSearch, - &compareOptions)) - return NULL; - _rv = CFStringCreateArrayWithFindResults((CFAllocatorRef)NULL, - _self->ob_itself, - stringToFind, - rangeToSearch, - compareOptions); - _res = Py_BuildValue("O&", - CFArrayRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringFind(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFRange _rv; - CFStringRef stringToFind; - CFOptionFlags compareOptions; -#ifndef CFStringFind - PyMac_PRECHECK(CFStringFind); -#endif - if (!PyArg_ParseTuple(_args, "O&l", - CFStringRefObj_Convert, &stringToFind, - &compareOptions)) - return NULL; - _rv = CFStringFind(_self->ob_itself, - stringToFind, - compareOptions); - _res = Py_BuildValue("O&", - CFRange_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringHasPrefix(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - CFStringRef prefix; -#ifndef CFStringHasPrefix - PyMac_PRECHECK(CFStringHasPrefix); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &prefix)) - return NULL; - _rv = CFStringHasPrefix(_self->ob_itself, - prefix); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringHasSuffix(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - CFStringRef suffix; -#ifndef CFStringHasSuffix - PyMac_PRECHECK(CFStringHasSuffix); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &suffix)) - return NULL; - _rv = CFStringHasSuffix(_self->ob_itself, - suffix); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringGetLineBounds(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFRange range; - CFIndex lineBeginIndex; - CFIndex lineEndIndex; - CFIndex contentsEndIndex; -#ifndef CFStringGetLineBounds - PyMac_PRECHECK(CFStringGetLineBounds); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFRange_Convert, &range)) - return NULL; - CFStringGetLineBounds(_self->ob_itself, - range, - &lineBeginIndex, - &lineEndIndex, - &contentsEndIndex); - _res = Py_BuildValue("lll", - lineBeginIndex, - lineEndIndex, - contentsEndIndex); - return _res; -} - -static PyObject *CFStringRefObj_CFStringCreateArrayBySeparatingStrings(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFArrayRef _rv; - CFStringRef separatorString; - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &separatorString)) - return NULL; - _rv = CFStringCreateArrayBySeparatingStrings((CFAllocatorRef)NULL, - _self->ob_itself, - separatorString); - _res = Py_BuildValue("O&", - CFArrayRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringGetIntValue(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - SInt32 _rv; -#ifndef CFStringGetIntValue - PyMac_PRECHECK(CFStringGetIntValue); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringGetIntValue(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringGetDoubleValue(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - double _rv; -#ifndef CFStringGetDoubleValue - PyMac_PRECHECK(CFStringGetDoubleValue); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringGetDoubleValue(_self->ob_itself); - _res = Py_BuildValue("d", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringConvertIANACharSetNameToEncoding(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringEncoding _rv; -#ifndef CFStringConvertIANACharSetNameToEncoding - PyMac_PRECHECK(CFStringConvertIANACharSetNameToEncoding); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringConvertIANACharSetNameToEncoding(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFShowStr(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; -#ifndef CFShowStr - PyMac_PRECHECK(CFShowStr); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - CFShowStr(_self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFStringRefObj_CFURLCreateWithString(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - CFURLRef baseURL; - if (!PyArg_ParseTuple(_args, "O&", - OptionalCFURLRefObj_Convert, &baseURL)) - return NULL; - _rv = CFURLCreateWithString((CFAllocatorRef)NULL, - _self->ob_itself, - baseURL); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFURLCreateWithFileSystemPath(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - CFURLPathStyle pathStyle; - Boolean isDirectory; - if (!PyArg_ParseTuple(_args, "ll", - &pathStyle, - &isDirectory)) - return NULL; - _rv = CFURLCreateWithFileSystemPath((CFAllocatorRef)NULL, - _self->ob_itself, - pathStyle, - isDirectory); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFURLCreateWithFileSystemPathRelativeToBase(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - CFURLPathStyle pathStyle; - Boolean isDirectory; - CFURLRef baseURL; - if (!PyArg_ParseTuple(_args, "llO&", - &pathStyle, - &isDirectory, - OptionalCFURLRefObj_Convert, &baseURL)) - return NULL; - _rv = CFURLCreateWithFileSystemPathRelativeToBase((CFAllocatorRef)NULL, - _self->ob_itself, - pathStyle, - isDirectory, - baseURL); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFURLCreateStringByReplacingPercentEscapes(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringRef charactersToLeaveEscaped; - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &charactersToLeaveEscaped)) - return NULL; - _rv = CFURLCreateStringByReplacingPercentEscapes((CFAllocatorRef)NULL, - _self->ob_itself, - charactersToLeaveEscaped); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFURLCreateStringByAddingPercentEscapes(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringRef charactersToLeaveUnescaped; - CFStringRef legalURLCharactersToBeEscaped; - CFStringEncoding encoding; - if (!PyArg_ParseTuple(_args, "O&O&l", - CFStringRefObj_Convert, &charactersToLeaveUnescaped, - CFStringRefObj_Convert, &legalURLCharactersToBeEscaped, - &encoding)) - return NULL; - _rv = CFURLCreateStringByAddingPercentEscapes((CFAllocatorRef)NULL, - _self->ob_itself, - charactersToLeaveUnescaped, - legalURLCharactersToBeEscaped, - encoding); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFStringRefObj_CFStringGetString(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - - int size = CFStringGetLength(_self->ob_itself)+1; - char *data = malloc(size); - - if( data == NULL ) return PyErr_NoMemory(); - if ( CFStringGetCString(_self->ob_itself, data, size, 0) ) { - _res = (PyObject *)PyString_FromString(data); - } else { - PyErr_SetString(PyExc_RuntimeError, "CFStringGetCString could not fit the string"); - _res = NULL; - } - free(data); - return _res; - -} - -static PyObject *CFStringRefObj_CFStringGetUnicode(CFStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - - int size = CFStringGetLength(_self->ob_itself)+1; - Py_UNICODE *data = malloc(size*sizeof(Py_UNICODE)); - CFRange range; - - range.location = 0; - range.length = size; - if( data == NULL ) return PyErr_NoMemory(); - CFStringGetCharacters(_self->ob_itself, range, data); - _res = (PyObject *)PyUnicode_FromUnicode(data, size-1); - free(data); - return _res; - -} - -static PyMethodDef CFStringRefObj_methods[] = { - {"CFStringCreateWithSubstring", (PyCFunction)CFStringRefObj_CFStringCreateWithSubstring, 1, - PyDoc_STR("(CFRange range) -> (CFStringRef _rv)")}, - {"CFStringCreateCopy", (PyCFunction)CFStringRefObj_CFStringCreateCopy, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFStringGetLength", (PyCFunction)CFStringRefObj_CFStringGetLength, 1, - PyDoc_STR("() -> (CFIndex _rv)")}, - {"CFStringGetBytes", (PyCFunction)CFStringRefObj_CFStringGetBytes, 1, - PyDoc_STR("(CFRange range, CFStringEncoding encoding, UInt8 lossByte, Boolean isExternalRepresentation, CFIndex maxBufLen) -> (CFIndex _rv, UInt8 buffer, CFIndex usedBufLen)")}, - {"CFStringCreateExternalRepresentation", (PyCFunction)CFStringRefObj_CFStringCreateExternalRepresentation, 1, - PyDoc_STR("(CFStringEncoding encoding, UInt8 lossByte) -> (CFDataRef _rv)")}, - {"CFStringGetSmallestEncoding", (PyCFunction)CFStringRefObj_CFStringGetSmallestEncoding, 1, - PyDoc_STR("() -> (CFStringEncoding _rv)")}, - {"CFStringGetFastestEncoding", (PyCFunction)CFStringRefObj_CFStringGetFastestEncoding, 1, - PyDoc_STR("() -> (CFStringEncoding _rv)")}, - {"CFStringCompareWithOptions", (PyCFunction)CFStringRefObj_CFStringCompareWithOptions, 1, - PyDoc_STR("(CFStringRef theString2, CFRange rangeToCompare, CFOptionFlags compareOptions) -> (CFComparisonResult _rv)")}, - {"CFStringCompare", (PyCFunction)CFStringRefObj_CFStringCompare, 1, - PyDoc_STR("(CFStringRef theString2, CFOptionFlags compareOptions) -> (CFComparisonResult _rv)")}, - {"CFStringFindWithOptions", (PyCFunction)CFStringRefObj_CFStringFindWithOptions, 1, - PyDoc_STR("(CFStringRef stringToFind, CFRange rangeToSearch, CFOptionFlags searchOptions) -> (Boolean _rv, CFRange result)")}, - {"CFStringCreateArrayWithFindResults", (PyCFunction)CFStringRefObj_CFStringCreateArrayWithFindResults, 1, - PyDoc_STR("(CFStringRef stringToFind, CFRange rangeToSearch, CFOptionFlags compareOptions) -> (CFArrayRef _rv)")}, - {"CFStringFind", (PyCFunction)CFStringRefObj_CFStringFind, 1, - PyDoc_STR("(CFStringRef stringToFind, CFOptionFlags compareOptions) -> (CFRange _rv)")}, - {"CFStringHasPrefix", (PyCFunction)CFStringRefObj_CFStringHasPrefix, 1, - PyDoc_STR("(CFStringRef prefix) -> (Boolean _rv)")}, - {"CFStringHasSuffix", (PyCFunction)CFStringRefObj_CFStringHasSuffix, 1, - PyDoc_STR("(CFStringRef suffix) -> (Boolean _rv)")}, - {"CFStringGetLineBounds", (PyCFunction)CFStringRefObj_CFStringGetLineBounds, 1, - PyDoc_STR("(CFRange range) -> (CFIndex lineBeginIndex, CFIndex lineEndIndex, CFIndex contentsEndIndex)")}, - {"CFStringCreateArrayBySeparatingStrings", (PyCFunction)CFStringRefObj_CFStringCreateArrayBySeparatingStrings, 1, - PyDoc_STR("(CFStringRef separatorString) -> (CFArrayRef _rv)")}, - {"CFStringGetIntValue", (PyCFunction)CFStringRefObj_CFStringGetIntValue, 1, - PyDoc_STR("() -> (SInt32 _rv)")}, - {"CFStringGetDoubleValue", (PyCFunction)CFStringRefObj_CFStringGetDoubleValue, 1, - PyDoc_STR("() -> (double _rv)")}, - {"CFStringConvertIANACharSetNameToEncoding", (PyCFunction)CFStringRefObj_CFStringConvertIANACharSetNameToEncoding, 1, - PyDoc_STR("() -> (CFStringEncoding _rv)")}, - {"CFShowStr", (PyCFunction)CFStringRefObj_CFShowStr, 1, - PyDoc_STR("() -> None")}, - {"CFURLCreateWithString", (PyCFunction)CFStringRefObj_CFURLCreateWithString, 1, - PyDoc_STR("(CFURLRef baseURL) -> (CFURLRef _rv)")}, - {"CFURLCreateWithFileSystemPath", (PyCFunction)CFStringRefObj_CFURLCreateWithFileSystemPath, 1, - PyDoc_STR("(CFURLPathStyle pathStyle, Boolean isDirectory) -> (CFURLRef _rv)")}, - {"CFURLCreateWithFileSystemPathRelativeToBase", (PyCFunction)CFStringRefObj_CFURLCreateWithFileSystemPathRelativeToBase, 1, - PyDoc_STR("(CFURLPathStyle pathStyle, Boolean isDirectory, CFURLRef baseURL) -> (CFURLRef _rv)")}, - {"CFURLCreateStringByReplacingPercentEscapes", (PyCFunction)CFStringRefObj_CFURLCreateStringByReplacingPercentEscapes, 1, - PyDoc_STR("(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)")}, - {"CFURLCreateStringByAddingPercentEscapes", (PyCFunction)CFStringRefObj_CFURLCreateStringByAddingPercentEscapes, 1, - PyDoc_STR("(CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding) -> (CFStringRef _rv)")}, - {"CFStringGetString", (PyCFunction)CFStringRefObj_CFStringGetString, 1, - PyDoc_STR("() -> (string _rv)")}, - {"CFStringGetUnicode", (PyCFunction)CFStringRefObj_CFStringGetUnicode, 1, - PyDoc_STR("() -> (unicode _rv)")}, - {NULL, NULL, 0} -}; - -#define CFStringRefObj_getsetlist NULL - - -static int CFStringRefObj_compare(CFStringRefObject *self, CFStringRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFStringRefObj_repr(CFStringRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFStringRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFStringRefObj_hash(CFStringRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFStringRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFStringRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFStringRefObj_Convert, &itself)) - { - ((CFStringRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFStringRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFStringRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFStringRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFStringRefObject *)self)->ob_itself = NULL; - ((CFStringRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFStringRefObj_tp_free PyObject_Del - - -PyTypeObject CFStringRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFStringRef", /*tp_name*/ - sizeof(CFStringRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFStringRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFStringRefObj_compare, /*tp_compare*/ - (reprfunc) CFStringRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFStringRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFStringRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFStringRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFStringRefObj_tp_init, /* tp_init */ - CFStringRefObj_tp_alloc, /* tp_alloc */ - CFStringRefObj_tp_new, /* tp_new */ - CFStringRefObj_tp_free, /* tp_free */ -}; - -/* ------------------ End object type CFStringRef ------------------- */ - - -/* ----------------- Object type CFMutableStringRef ----------------- */ - -PyTypeObject CFMutableStringRef_Type; - -#define CFMutableStringRefObj_Check(x) ((x)->ob_type == &CFMutableStringRef_Type || PyObject_TypeCheck((x), &CFMutableStringRef_Type)) - -typedef struct CFMutableStringRefObject { - PyObject_HEAD - CFMutableStringRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFMutableStringRefObject; - -PyObject *CFMutableStringRefObj_New(CFMutableStringRef itself) -{ - CFMutableStringRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFMutableStringRefObject, &CFMutableStringRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFMutableStringRefObj_Convert(PyObject *v, CFMutableStringRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFMutableStringRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFMutableStringRef required"); - return 0; - } - *p_itself = ((CFMutableStringRefObject *)v)->ob_itself; - return 1; -} - -static void CFMutableStringRefObj_dealloc(CFMutableStringRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFStringRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFMutableStringRefObj_CFStringAppend(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef appendedString; -#ifndef CFStringAppend - PyMac_PRECHECK(CFStringAppend); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &appendedString)) - return NULL; - CFStringAppend(_self->ob_itself, - appendedString); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringAppendCharacters(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - UniChar *chars__in__; - UniCharCount chars__len__; - int chars__in_len__; -#ifndef CFStringAppendCharacters - PyMac_PRECHECK(CFStringAppendCharacters); -#endif - if (!PyArg_ParseTuple(_args, "u#", - &chars__in__, &chars__in_len__)) - return NULL; - chars__len__ = chars__in_len__; - CFStringAppendCharacters(_self->ob_itself, - chars__in__, chars__len__); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringAppendPascalString(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Str255 pStr; - CFStringEncoding encoding; -#ifndef CFStringAppendPascalString - PyMac_PRECHECK(CFStringAppendPascalString); -#endif - if (!PyArg_ParseTuple(_args, "O&l", - PyMac_GetStr255, pStr, - &encoding)) - return NULL; - CFStringAppendPascalString(_self->ob_itself, - pStr, - encoding); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringAppendCString(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - char* cStr; - CFStringEncoding encoding; -#ifndef CFStringAppendCString - PyMac_PRECHECK(CFStringAppendCString); -#endif - if (!PyArg_ParseTuple(_args, "sl", - &cStr, - &encoding)) - return NULL; - CFStringAppendCString(_self->ob_itself, - cStr, - encoding); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringInsert(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex idx; - CFStringRef insertedStr; -#ifndef CFStringInsert - PyMac_PRECHECK(CFStringInsert); -#endif - if (!PyArg_ParseTuple(_args, "lO&", - &idx, - CFStringRefObj_Convert, &insertedStr)) - return NULL; - CFStringInsert(_self->ob_itself, - idx, - insertedStr); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringDelete(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFRange range; -#ifndef CFStringDelete - PyMac_PRECHECK(CFStringDelete); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFRange_Convert, &range)) - return NULL; - CFStringDelete(_self->ob_itself, - range); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringReplace(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFRange range; - CFStringRef replacement; -#ifndef CFStringReplace - PyMac_PRECHECK(CFStringReplace); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CFRange_Convert, &range, - CFStringRefObj_Convert, &replacement)) - return NULL; - CFStringReplace(_self->ob_itself, - range, - replacement); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringReplaceAll(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef replacement; -#ifndef CFStringReplaceAll - PyMac_PRECHECK(CFStringReplaceAll); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &replacement)) - return NULL; - CFStringReplaceAll(_self->ob_itself, - replacement); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringPad(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef padString; - CFIndex length; - CFIndex indexIntoPad; -#ifndef CFStringPad - PyMac_PRECHECK(CFStringPad); -#endif - if (!PyArg_ParseTuple(_args, "O&ll", - CFStringRefObj_Convert, &padString, - &length, - &indexIntoPad)) - return NULL; - CFStringPad(_self->ob_itself, - padString, - length, - indexIntoPad); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringTrim(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef trimString; -#ifndef CFStringTrim - PyMac_PRECHECK(CFStringTrim); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &trimString)) - return NULL; - CFStringTrim(_self->ob_itself, - trimString); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CFMutableStringRefObj_CFStringTrimWhitespace(CFMutableStringRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; -#ifndef CFStringTrimWhitespace - PyMac_PRECHECK(CFStringTrimWhitespace); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - CFStringTrimWhitespace(_self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyMethodDef CFMutableStringRefObj_methods[] = { - {"CFStringAppend", (PyCFunction)CFMutableStringRefObj_CFStringAppend, 1, - PyDoc_STR("(CFStringRef appendedString) -> None")}, - {"CFStringAppendCharacters", (PyCFunction)CFMutableStringRefObj_CFStringAppendCharacters, 1, - PyDoc_STR("(Buffer chars) -> None")}, - {"CFStringAppendPascalString", (PyCFunction)CFMutableStringRefObj_CFStringAppendPascalString, 1, - PyDoc_STR("(Str255 pStr, CFStringEncoding encoding) -> None")}, - {"CFStringAppendCString", (PyCFunction)CFMutableStringRefObj_CFStringAppendCString, 1, - PyDoc_STR("(char* cStr, CFStringEncoding encoding) -> None")}, - {"CFStringInsert", (PyCFunction)CFMutableStringRefObj_CFStringInsert, 1, - PyDoc_STR("(CFIndex idx, CFStringRef insertedStr) -> None")}, - {"CFStringDelete", (PyCFunction)CFMutableStringRefObj_CFStringDelete, 1, - PyDoc_STR("(CFRange range) -> None")}, - {"CFStringReplace", (PyCFunction)CFMutableStringRefObj_CFStringReplace, 1, - PyDoc_STR("(CFRange range, CFStringRef replacement) -> None")}, - {"CFStringReplaceAll", (PyCFunction)CFMutableStringRefObj_CFStringReplaceAll, 1, - PyDoc_STR("(CFStringRef replacement) -> None")}, - {"CFStringPad", (PyCFunction)CFMutableStringRefObj_CFStringPad, 1, - PyDoc_STR("(CFStringRef padString, CFIndex length, CFIndex indexIntoPad) -> None")}, - {"CFStringTrim", (PyCFunction)CFMutableStringRefObj_CFStringTrim, 1, - PyDoc_STR("(CFStringRef trimString) -> None")}, - {"CFStringTrimWhitespace", (PyCFunction)CFMutableStringRefObj_CFStringTrimWhitespace, 1, - PyDoc_STR("() -> None")}, - {NULL, NULL, 0} -}; - -#define CFMutableStringRefObj_getsetlist NULL - - -static int CFMutableStringRefObj_compare(CFMutableStringRefObject *self, CFMutableStringRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFMutableStringRefObj_repr(CFMutableStringRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFMutableStringRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFMutableStringRefObj_hash(CFMutableStringRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFMutableStringRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFMutableStringRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFMutableStringRefObj_Convert, &itself)) - { - ((CFMutableStringRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFMutableStringRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFMutableStringRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFMutableStringRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFMutableStringRefObject *)self)->ob_itself = NULL; - ((CFMutableStringRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFMutableStringRefObj_tp_free PyObject_Del - - -PyTypeObject CFMutableStringRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFMutableStringRef", /*tp_name*/ - sizeof(CFMutableStringRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFMutableStringRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFMutableStringRefObj_compare, /*tp_compare*/ - (reprfunc) CFMutableStringRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFMutableStringRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFMutableStringRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFMutableStringRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFMutableStringRefObj_tp_init, /* tp_init */ - CFMutableStringRefObj_tp_alloc, /* tp_alloc */ - CFMutableStringRefObj_tp_new, /* tp_new */ - CFMutableStringRefObj_tp_free, /* tp_free */ -}; - -/* --------------- End object type CFMutableStringRef --------------- */ - - -/* ---------------------- Object type CFURLRef ---------------------- */ - -PyTypeObject CFURLRef_Type; - -#define CFURLRefObj_Check(x) ((x)->ob_type == &CFURLRef_Type || PyObject_TypeCheck((x), &CFURLRef_Type)) - -typedef struct CFURLRefObject { - PyObject_HEAD - CFURLRef ob_itself; - void (*ob_freeit)(CFTypeRef ptr); -} CFURLRefObject; - -PyObject *CFURLRefObj_New(CFURLRef itself) -{ - CFURLRefObject *it; - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - it = PyObject_NEW(CFURLRefObject, &CFURLRef_Type); - if (it == NULL) return NULL; - /* XXXX Should we tp_init or tp_new our basetype? */ - it->ob_itself = itself; - it->ob_freeit = CFRelease; - return (PyObject *)it; -} - -int CFURLRefObj_Convert(PyObject *v, CFURLRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFURLRefObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "CFURLRef required"); - return 0; - } - *p_itself = ((CFURLRefObject *)v)->ob_itself; - return 1; -} - -static void CFURLRefObj_dealloc(CFURLRefObject *self) -{ - if (self->ob_freeit && self->ob_itself) - { - self->ob_freeit((CFTypeRef)self->ob_itself); - self->ob_itself = NULL; - } - CFTypeRef_Type.tp_dealloc((PyObject *)self); -} - -static PyObject *CFURLRefObj_CFURLCreateData(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDataRef _rv; - CFStringEncoding encoding; - Boolean escapeWhitespace; - if (!PyArg_ParseTuple(_args, "ll", - &encoding, - &escapeWhitespace)) - return NULL; - _rv = CFURLCreateData((CFAllocatorRef)NULL, - _self->ob_itself, - encoding, - escapeWhitespace); - _res = Py_BuildValue("O&", - CFDataRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLGetFileSystemRepresentation(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - Boolean resolveAgainstBase; - UInt8 buffer; - CFIndex maxBufLen; -#ifndef CFURLGetFileSystemRepresentation - PyMac_PRECHECK(CFURLGetFileSystemRepresentation); -#endif - if (!PyArg_ParseTuple(_args, "ll", - &resolveAgainstBase, - &maxBufLen)) - return NULL; - _rv = CFURLGetFileSystemRepresentation(_self->ob_itself, - resolveAgainstBase, - &buffer, - maxBufLen); - _res = Py_BuildValue("lb", - _rv, - buffer); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyAbsoluteURL(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; -#ifndef CFURLCopyAbsoluteURL - PyMac_PRECHECK(CFURLCopyAbsoluteURL); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyAbsoluteURL(_self->ob_itself); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLGetString(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLGetString - PyMac_PRECHECK(CFURLGetString); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLGetString(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLGetBaseURL(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; -#ifndef CFURLGetBaseURL - PyMac_PRECHECK(CFURLGetBaseURL); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLGetBaseURL(_self->ob_itself); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCanBeDecomposed(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; -#ifndef CFURLCanBeDecomposed - PyMac_PRECHECK(CFURLCanBeDecomposed); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCanBeDecomposed(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyScheme(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyScheme - PyMac_PRECHECK(CFURLCopyScheme); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyScheme(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyNetLocation(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyNetLocation - PyMac_PRECHECK(CFURLCopyNetLocation); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyNetLocation(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyPath(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyPath - PyMac_PRECHECK(CFURLCopyPath); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyPath(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyStrictPath(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - Boolean isAbsolute; -#ifndef CFURLCopyStrictPath - PyMac_PRECHECK(CFURLCopyStrictPath); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyStrictPath(_self->ob_itself, - &isAbsolute); - _res = Py_BuildValue("O&l", - CFStringRefObj_New, _rv, - isAbsolute); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyFileSystemPath(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFURLPathStyle pathStyle; -#ifndef CFURLCopyFileSystemPath - PyMac_PRECHECK(CFURLCopyFileSystemPath); -#endif - if (!PyArg_ParseTuple(_args, "l", - &pathStyle)) - return NULL; - _rv = CFURLCopyFileSystemPath(_self->ob_itself, - pathStyle); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLHasDirectoryPath(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; -#ifndef CFURLHasDirectoryPath - PyMac_PRECHECK(CFURLHasDirectoryPath); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLHasDirectoryPath(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyResourceSpecifier(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyResourceSpecifier - PyMac_PRECHECK(CFURLCopyResourceSpecifier); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyResourceSpecifier(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyHostName(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyHostName - PyMac_PRECHECK(CFURLCopyHostName); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyHostName(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLGetPortNumber(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - SInt32 _rv; -#ifndef CFURLGetPortNumber - PyMac_PRECHECK(CFURLGetPortNumber); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLGetPortNumber(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyUserName(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyUserName - PyMac_PRECHECK(CFURLCopyUserName); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyUserName(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyPassword(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyPassword - PyMac_PRECHECK(CFURLCopyPassword); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyPassword(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyParameterString(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringRef charactersToLeaveEscaped; -#ifndef CFURLCopyParameterString - PyMac_PRECHECK(CFURLCopyParameterString); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &charactersToLeaveEscaped)) - return NULL; - _rv = CFURLCopyParameterString(_self->ob_itself, - charactersToLeaveEscaped); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyQueryString(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringRef charactersToLeaveEscaped; -#ifndef CFURLCopyQueryString - PyMac_PRECHECK(CFURLCopyQueryString); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &charactersToLeaveEscaped)) - return NULL; - _rv = CFURLCopyQueryString(_self->ob_itself, - charactersToLeaveEscaped); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyFragment(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringRef charactersToLeaveEscaped; -#ifndef CFURLCopyFragment - PyMac_PRECHECK(CFURLCopyFragment); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &charactersToLeaveEscaped)) - return NULL; - _rv = CFURLCopyFragment(_self->ob_itself, - charactersToLeaveEscaped); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyLastPathComponent(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyLastPathComponent - PyMac_PRECHECK(CFURLCopyLastPathComponent); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyLastPathComponent(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCopyPathExtension(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; -#ifndef CFURLCopyPathExtension - PyMac_PRECHECK(CFURLCopyPathExtension); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCopyPathExtension(_self->ob_itself); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCreateCopyAppendingPathComponent(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - CFStringRef pathComponent; - Boolean isDirectory; - if (!PyArg_ParseTuple(_args, "O&l", - CFStringRefObj_Convert, &pathComponent, - &isDirectory)) - return NULL; - _rv = CFURLCreateCopyAppendingPathComponent((CFAllocatorRef)NULL, - _self->ob_itself, - pathComponent, - isDirectory); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCreateCopyDeletingLastPathComponent(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCreateCopyDeletingLastPathComponent((CFAllocatorRef)NULL, - _self->ob_itself); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCreateCopyAppendingPathExtension(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - CFStringRef extension; - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &extension)) - return NULL; - _rv = CFURLCreateCopyAppendingPathExtension((CFAllocatorRef)NULL, - _self->ob_itself, - extension); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLCreateCopyDeletingPathExtension(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLCreateCopyDeletingPathExtension((CFAllocatorRef)NULL, - _self->ob_itself); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CFURLRefObj_CFURLGetFSRef(CFURLRefObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - FSRef fsRef; -#ifndef CFURLGetFSRef - PyMac_PRECHECK(CFURLGetFSRef); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLGetFSRef(_self->ob_itself, - &fsRef); - _res = Py_BuildValue("lO&", - _rv, - PyMac_BuildFSRef, &fsRef); - return _res; -} - -static PyMethodDef CFURLRefObj_methods[] = { - {"CFURLCreateData", (PyCFunction)CFURLRefObj_CFURLCreateData, 1, - PyDoc_STR("(CFStringEncoding encoding, Boolean escapeWhitespace) -> (CFDataRef _rv)")}, - {"CFURLGetFileSystemRepresentation", (PyCFunction)CFURLRefObj_CFURLGetFileSystemRepresentation, 1, - PyDoc_STR("(Boolean resolveAgainstBase, CFIndex maxBufLen) -> (Boolean _rv, UInt8 buffer)")}, - {"CFURLCopyAbsoluteURL", (PyCFunction)CFURLRefObj_CFURLCopyAbsoluteURL, 1, - PyDoc_STR("() -> (CFURLRef _rv)")}, - {"CFURLGetString", (PyCFunction)CFURLRefObj_CFURLGetString, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLGetBaseURL", (PyCFunction)CFURLRefObj_CFURLGetBaseURL, 1, - PyDoc_STR("() -> (CFURLRef _rv)")}, - {"CFURLCanBeDecomposed", (PyCFunction)CFURLRefObj_CFURLCanBeDecomposed, 1, - PyDoc_STR("() -> (Boolean _rv)")}, - {"CFURLCopyScheme", (PyCFunction)CFURLRefObj_CFURLCopyScheme, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLCopyNetLocation", (PyCFunction)CFURLRefObj_CFURLCopyNetLocation, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLCopyPath", (PyCFunction)CFURLRefObj_CFURLCopyPath, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLCopyStrictPath", (PyCFunction)CFURLRefObj_CFURLCopyStrictPath, 1, - PyDoc_STR("() -> (CFStringRef _rv, Boolean isAbsolute)")}, - {"CFURLCopyFileSystemPath", (PyCFunction)CFURLRefObj_CFURLCopyFileSystemPath, 1, - PyDoc_STR("(CFURLPathStyle pathStyle) -> (CFStringRef _rv)")}, - {"CFURLHasDirectoryPath", (PyCFunction)CFURLRefObj_CFURLHasDirectoryPath, 1, - PyDoc_STR("() -> (Boolean _rv)")}, - {"CFURLCopyResourceSpecifier", (PyCFunction)CFURLRefObj_CFURLCopyResourceSpecifier, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLCopyHostName", (PyCFunction)CFURLRefObj_CFURLCopyHostName, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLGetPortNumber", (PyCFunction)CFURLRefObj_CFURLGetPortNumber, 1, - PyDoc_STR("() -> (SInt32 _rv)")}, - {"CFURLCopyUserName", (PyCFunction)CFURLRefObj_CFURLCopyUserName, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLCopyPassword", (PyCFunction)CFURLRefObj_CFURLCopyPassword, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLCopyParameterString", (PyCFunction)CFURLRefObj_CFURLCopyParameterString, 1, - PyDoc_STR("(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)")}, - {"CFURLCopyQueryString", (PyCFunction)CFURLRefObj_CFURLCopyQueryString, 1, - PyDoc_STR("(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)")}, - {"CFURLCopyFragment", (PyCFunction)CFURLRefObj_CFURLCopyFragment, 1, - PyDoc_STR("(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)")}, - {"CFURLCopyLastPathComponent", (PyCFunction)CFURLRefObj_CFURLCopyLastPathComponent, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLCopyPathExtension", (PyCFunction)CFURLRefObj_CFURLCopyPathExtension, 1, - PyDoc_STR("() -> (CFStringRef _rv)")}, - {"CFURLCreateCopyAppendingPathComponent", (PyCFunction)CFURLRefObj_CFURLCreateCopyAppendingPathComponent, 1, - PyDoc_STR("(CFStringRef pathComponent, Boolean isDirectory) -> (CFURLRef _rv)")}, - {"CFURLCreateCopyDeletingLastPathComponent", (PyCFunction)CFURLRefObj_CFURLCreateCopyDeletingLastPathComponent, 1, - PyDoc_STR("() -> (CFURLRef _rv)")}, - {"CFURLCreateCopyAppendingPathExtension", (PyCFunction)CFURLRefObj_CFURLCreateCopyAppendingPathExtension, 1, - PyDoc_STR("(CFStringRef extension) -> (CFURLRef _rv)")}, - {"CFURLCreateCopyDeletingPathExtension", (PyCFunction)CFURLRefObj_CFURLCreateCopyDeletingPathExtension, 1, - PyDoc_STR("() -> (CFURLRef _rv)")}, - {"CFURLGetFSRef", (PyCFunction)CFURLRefObj_CFURLGetFSRef, 1, - PyDoc_STR("() -> (Boolean _rv, FSRef fsRef)")}, - {NULL, NULL, 0} -}; - -#define CFURLRefObj_getsetlist NULL - - -static int CFURLRefObj_compare(CFURLRefObject *self, CFURLRefObject *other) -{ - /* XXXX Or should we use CFEqual?? */ - if ( self->ob_itself > other->ob_itself ) return 1; - if ( self->ob_itself < other->ob_itself ) return -1; - return 0; -} - -static PyObject * CFURLRefObj_repr(CFURLRefObject *self) -{ - char buf[100]; - sprintf(buf, "<CFURL object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself); - return PyString_FromString(buf); -} - -static int CFURLRefObj_hash(CFURLRefObject *self) -{ - /* XXXX Or should we use CFHash?? */ - return (int)self->ob_itself; -} -static int CFURLRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds) -{ - CFURLRef itself; - char *kw[] = {"itself", 0}; - - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFURLRefObj_Convert, &itself)) - { - ((CFURLRefObject *)_self)->ob_itself = itself; - return 0; - } - - /* Any CFTypeRef descendent is allowed as initializer too */ - if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself)) - { - ((CFURLRefObject *)_self)->ob_itself = itself; - return 0; - } - return -1; -} - -#define CFURLRefObj_tp_alloc PyType_GenericAlloc - -static PyObject *CFURLRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *self; - if ((self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((CFURLRefObject *)self)->ob_itself = NULL; - ((CFURLRefObject *)self)->ob_freeit = CFRelease; - return self; -} - -#define CFURLRefObj_tp_free PyObject_Del - - -PyTypeObject CFURLRef_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_CF.CFURLRef", /*tp_name*/ - sizeof(CFURLRefObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CFURLRefObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CFURLRefObj_compare, /*tp_compare*/ - (reprfunc) CFURLRefObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CFURLRefObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - CFURLRefObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CFURLRefObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CFURLRefObj_tp_init, /* tp_init */ - CFURLRefObj_tp_alloc, /* tp_alloc */ - CFURLRefObj_tp_new, /* tp_new */ - CFURLRefObj_tp_free, /* tp_free */ -}; - -/* -------------------- End object type CFURLRef -------------------- */ - - -static PyObject *CF___CFRangeMake(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFRange _rv; - CFIndex loc; - CFIndex len; -#ifndef __CFRangeMake - PyMac_PRECHECK(__CFRangeMake); -#endif - if (!PyArg_ParseTuple(_args, "ll", - &loc, - &len)) - return NULL; - _rv = __CFRangeMake(loc, - len); - _res = Py_BuildValue("O&", - CFRange_New, _rv); - return _res; -} - -static PyObject *CF_CFAllocatorGetTypeID(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeID _rv; -#ifndef CFAllocatorGetTypeID - PyMac_PRECHECK(CFAllocatorGetTypeID); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFAllocatorGetTypeID(); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFAllocatorGetPreferredSizeForSize(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; - CFIndex size; - CFOptionFlags hint; -#ifndef CFAllocatorGetPreferredSizeForSize - PyMac_PRECHECK(CFAllocatorGetPreferredSizeForSize); -#endif - if (!PyArg_ParseTuple(_args, "ll", - &size, - &hint)) - return NULL; - _rv = CFAllocatorGetPreferredSizeForSize((CFAllocatorRef)NULL, - size, - hint); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFCopyTypeIDDescription(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFTypeID type_id; -#ifndef CFCopyTypeIDDescription - PyMac_PRECHECK(CFCopyTypeIDDescription); -#endif - if (!PyArg_ParseTuple(_args, "l", - &type_id)) - return NULL; - _rv = CFCopyTypeIDDescription(type_id); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFArrayGetTypeID(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeID _rv; -#ifndef CFArrayGetTypeID - PyMac_PRECHECK(CFArrayGetTypeID); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFArrayGetTypeID(); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFArrayCreateMutable(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFMutableArrayRef _rv; - CFIndex capacity; -#ifndef CFArrayCreateMutable - PyMac_PRECHECK(CFArrayCreateMutable); -#endif - if (!PyArg_ParseTuple(_args, "l", - &capacity)) - return NULL; - _rv = CFArrayCreateMutable((CFAllocatorRef)NULL, - capacity, - &kCFTypeArrayCallBacks); - _res = Py_BuildValue("O&", - CFMutableArrayRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFArrayCreateMutableCopy(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFMutableArrayRef _rv; - CFIndex capacity; - CFArrayRef theArray; -#ifndef CFArrayCreateMutableCopy - PyMac_PRECHECK(CFArrayCreateMutableCopy); -#endif - if (!PyArg_ParseTuple(_args, "lO&", - &capacity, - CFArrayRefObj_Convert, &theArray)) - return NULL; - _rv = CFArrayCreateMutableCopy((CFAllocatorRef)NULL, - capacity, - theArray); - _res = Py_BuildValue("O&", - CFMutableArrayRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFDataGetTypeID(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeID _rv; -#ifndef CFDataGetTypeID - PyMac_PRECHECK(CFDataGetTypeID); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFDataGetTypeID(); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFDataCreate(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDataRef _rv; - unsigned char *bytes__in__; - long bytes__len__; - int bytes__in_len__; -#ifndef CFDataCreate - PyMac_PRECHECK(CFDataCreate); -#endif - if (!PyArg_ParseTuple(_args, "s#", - &bytes__in__, &bytes__in_len__)) - return NULL; - bytes__len__ = bytes__in_len__; - _rv = CFDataCreate((CFAllocatorRef)NULL, - bytes__in__, bytes__len__); - _res = Py_BuildValue("O&", - CFDataRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFDataCreateWithBytesNoCopy(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDataRef _rv; - unsigned char *bytes__in__; - long bytes__len__; - int bytes__in_len__; -#ifndef CFDataCreateWithBytesNoCopy - PyMac_PRECHECK(CFDataCreateWithBytesNoCopy); -#endif - if (!PyArg_ParseTuple(_args, "s#", - &bytes__in__, &bytes__in_len__)) - return NULL; - bytes__len__ = bytes__in_len__; - _rv = CFDataCreateWithBytesNoCopy((CFAllocatorRef)NULL, - bytes__in__, bytes__len__, - (CFAllocatorRef)NULL); - _res = Py_BuildValue("O&", - CFDataRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFDataCreateMutable(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFMutableDataRef _rv; - CFIndex capacity; -#ifndef CFDataCreateMutable - PyMac_PRECHECK(CFDataCreateMutable); -#endif - if (!PyArg_ParseTuple(_args, "l", - &capacity)) - return NULL; - _rv = CFDataCreateMutable((CFAllocatorRef)NULL, - capacity); - _res = Py_BuildValue("O&", - CFMutableDataRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFDataCreateMutableCopy(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFMutableDataRef _rv; - CFIndex capacity; - CFDataRef theData; -#ifndef CFDataCreateMutableCopy - PyMac_PRECHECK(CFDataCreateMutableCopy); -#endif - if (!PyArg_ParseTuple(_args, "lO&", - &capacity, - CFDataRefObj_Convert, &theData)) - return NULL; - _rv = CFDataCreateMutableCopy((CFAllocatorRef)NULL, - capacity, - theData); - _res = Py_BuildValue("O&", - CFMutableDataRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFDictionaryGetTypeID(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeID _rv; -#ifndef CFDictionaryGetTypeID - PyMac_PRECHECK(CFDictionaryGetTypeID); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFDictionaryGetTypeID(); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFDictionaryCreateMutable(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFMutableDictionaryRef _rv; - CFIndex capacity; -#ifndef CFDictionaryCreateMutable - PyMac_PRECHECK(CFDictionaryCreateMutable); -#endif - if (!PyArg_ParseTuple(_args, "l", - &capacity)) - return NULL; - _rv = CFDictionaryCreateMutable((CFAllocatorRef)NULL, - capacity, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - _res = Py_BuildValue("O&", - CFMutableDictionaryRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFDictionaryCreateMutableCopy(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFMutableDictionaryRef _rv; - CFIndex capacity; - CFDictionaryRef theDict; -#ifndef CFDictionaryCreateMutableCopy - PyMac_PRECHECK(CFDictionaryCreateMutableCopy); -#endif - if (!PyArg_ParseTuple(_args, "lO&", - &capacity, - CFDictionaryRefObj_Convert, &theDict)) - return NULL; - _rv = CFDictionaryCreateMutableCopy((CFAllocatorRef)NULL, - capacity, - theDict); - _res = Py_BuildValue("O&", - CFMutableDictionaryRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFPreferencesCopyAppValue(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeRef _rv; - CFStringRef key; - CFStringRef applicationID; -#ifndef CFPreferencesCopyAppValue - PyMac_PRECHECK(CFPreferencesCopyAppValue); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CFStringRefObj_Convert, &key, - CFStringRefObj_Convert, &applicationID)) - return NULL; - _rv = CFPreferencesCopyAppValue(key, - applicationID); - _res = Py_BuildValue("O&", - CFTypeRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFPreferencesGetAppBooleanValue(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - CFStringRef key; - CFStringRef applicationID; - Boolean keyExistsAndHasValidFormat; -#ifndef CFPreferencesGetAppBooleanValue - PyMac_PRECHECK(CFPreferencesGetAppBooleanValue); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CFStringRefObj_Convert, &key, - CFStringRefObj_Convert, &applicationID)) - return NULL; - _rv = CFPreferencesGetAppBooleanValue(key, - applicationID, - &keyExistsAndHasValidFormat); - _res = Py_BuildValue("ll", - _rv, - keyExistsAndHasValidFormat); - return _res; -} - -static PyObject *CF_CFPreferencesGetAppIntegerValue(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; - CFStringRef key; - CFStringRef applicationID; - Boolean keyExistsAndHasValidFormat; -#ifndef CFPreferencesGetAppIntegerValue - PyMac_PRECHECK(CFPreferencesGetAppIntegerValue); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CFStringRefObj_Convert, &key, - CFStringRefObj_Convert, &applicationID)) - return NULL; - _rv = CFPreferencesGetAppIntegerValue(key, - applicationID, - &keyExistsAndHasValidFormat); - _res = Py_BuildValue("ll", - _rv, - keyExistsAndHasValidFormat); - return _res; -} - -static PyObject *CF_CFPreferencesSetAppValue(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef key; - CFTypeRef value; - CFStringRef applicationID; -#ifndef CFPreferencesSetAppValue - PyMac_PRECHECK(CFPreferencesSetAppValue); -#endif - if (!PyArg_ParseTuple(_args, "O&O&O&", - CFStringRefObj_Convert, &key, - CFTypeRefObj_Convert, &value, - CFStringRefObj_Convert, &applicationID)) - return NULL; - CFPreferencesSetAppValue(key, - value, - applicationID); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CF_CFPreferencesAddSuitePreferencesToApp(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef applicationID; - CFStringRef suiteID; -#ifndef CFPreferencesAddSuitePreferencesToApp - PyMac_PRECHECK(CFPreferencesAddSuitePreferencesToApp); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CFStringRefObj_Convert, &applicationID, - CFStringRefObj_Convert, &suiteID)) - return NULL; - CFPreferencesAddSuitePreferencesToApp(applicationID, - suiteID); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CF_CFPreferencesRemoveSuitePreferencesFromApp(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef applicationID; - CFStringRef suiteID; -#ifndef CFPreferencesRemoveSuitePreferencesFromApp - PyMac_PRECHECK(CFPreferencesRemoveSuitePreferencesFromApp); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CFStringRefObj_Convert, &applicationID, - CFStringRefObj_Convert, &suiteID)) - return NULL; - CFPreferencesRemoveSuitePreferencesFromApp(applicationID, - suiteID); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CF_CFPreferencesAppSynchronize(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - CFStringRef applicationID; -#ifndef CFPreferencesAppSynchronize - PyMac_PRECHECK(CFPreferencesAppSynchronize); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CFStringRefObj_Convert, &applicationID)) - return NULL; - _rv = CFPreferencesAppSynchronize(applicationID); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFPreferencesCopyValue(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeRef _rv; - CFStringRef key; - CFStringRef applicationID; - CFStringRef userName; - CFStringRef hostName; -#ifndef CFPreferencesCopyValue - PyMac_PRECHECK(CFPreferencesCopyValue); -#endif - if (!PyArg_ParseTuple(_args, "O&O&O&O&", - CFStringRefObj_Convert, &key, - CFStringRefObj_Convert, &applicationID, - CFStringRefObj_Convert, &userName, - CFStringRefObj_Convert, &hostName)) - return NULL; - _rv = CFPreferencesCopyValue(key, - applicationID, - userName, - hostName); - _res = Py_BuildValue("O&", - CFTypeRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFPreferencesCopyMultiple(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDictionaryRef _rv; - CFArrayRef keysToFetch; - CFStringRef applicationID; - CFStringRef userName; - CFStringRef hostName; -#ifndef CFPreferencesCopyMultiple - PyMac_PRECHECK(CFPreferencesCopyMultiple); -#endif - if (!PyArg_ParseTuple(_args, "O&O&O&O&", - CFArrayRefObj_Convert, &keysToFetch, - CFStringRefObj_Convert, &applicationID, - CFStringRefObj_Convert, &userName, - CFStringRefObj_Convert, &hostName)) - return NULL; - _rv = CFPreferencesCopyMultiple(keysToFetch, - applicationID, - userName, - hostName); - _res = Py_BuildValue("O&", - CFDictionaryRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFPreferencesSetValue(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef key; - CFTypeRef value; - CFStringRef applicationID; - CFStringRef userName; - CFStringRef hostName; -#ifndef CFPreferencesSetValue - PyMac_PRECHECK(CFPreferencesSetValue); -#endif - if (!PyArg_ParseTuple(_args, "O&O&O&O&O&", - CFStringRefObj_Convert, &key, - CFTypeRefObj_Convert, &value, - CFStringRefObj_Convert, &applicationID, - CFStringRefObj_Convert, &userName, - CFStringRefObj_Convert, &hostName)) - return NULL; - CFPreferencesSetValue(key, - value, - applicationID, - userName, - hostName); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CF_CFPreferencesSetMultiple(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFDictionaryRef keysToSet; - CFArrayRef keysToRemove; - CFStringRef applicationID; - CFStringRef userName; - CFStringRef hostName; -#ifndef CFPreferencesSetMultiple - PyMac_PRECHECK(CFPreferencesSetMultiple); -#endif - if (!PyArg_ParseTuple(_args, "O&O&O&O&O&", - CFDictionaryRefObj_Convert, &keysToSet, - CFArrayRefObj_Convert, &keysToRemove, - CFStringRefObj_Convert, &applicationID, - CFStringRefObj_Convert, &userName, - CFStringRefObj_Convert, &hostName)) - return NULL; - CFPreferencesSetMultiple(keysToSet, - keysToRemove, - applicationID, - userName, - hostName); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CF_CFPreferencesSynchronize(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - CFStringRef applicationID; - CFStringRef userName; - CFStringRef hostName; -#ifndef CFPreferencesSynchronize - PyMac_PRECHECK(CFPreferencesSynchronize); -#endif - if (!PyArg_ParseTuple(_args, "O&O&O&", - CFStringRefObj_Convert, &applicationID, - CFStringRefObj_Convert, &userName, - CFStringRefObj_Convert, &hostName)) - return NULL; - _rv = CFPreferencesSynchronize(applicationID, - userName, - hostName); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFPreferencesCopyApplicationList(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFArrayRef _rv; - CFStringRef userName; - CFStringRef hostName; -#ifndef CFPreferencesCopyApplicationList - PyMac_PRECHECK(CFPreferencesCopyApplicationList); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CFStringRefObj_Convert, &userName, - CFStringRefObj_Convert, &hostName)) - return NULL; - _rv = CFPreferencesCopyApplicationList(userName, - hostName); - _res = Py_BuildValue("O&", - CFArrayRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFPreferencesCopyKeyList(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFArrayRef _rv; - CFStringRef applicationID; - CFStringRef userName; - CFStringRef hostName; -#ifndef CFPreferencesCopyKeyList - PyMac_PRECHECK(CFPreferencesCopyKeyList); -#endif - if (!PyArg_ParseTuple(_args, "O&O&O&", - CFStringRefObj_Convert, &applicationID, - CFStringRefObj_Convert, &userName, - CFStringRefObj_Convert, &hostName)) - return NULL; - _rv = CFPreferencesCopyKeyList(applicationID, - userName, - hostName); - _res = Py_BuildValue("O&", - CFArrayRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringGetTypeID(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeID _rv; -#ifndef CFStringGetTypeID - PyMac_PRECHECK(CFStringGetTypeID); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringGetTypeID(); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFStringCreateWithPascalString(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - Str255 pStr; - CFStringEncoding encoding; -#ifndef CFStringCreateWithPascalString - PyMac_PRECHECK(CFStringCreateWithPascalString); -#endif - if (!PyArg_ParseTuple(_args, "O&l", - PyMac_GetStr255, pStr, - &encoding)) - return NULL; - _rv = CFStringCreateWithPascalString((CFAllocatorRef)NULL, - pStr, - encoding); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringCreateWithCString(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - char* cStr; - CFStringEncoding encoding; -#ifndef CFStringCreateWithCString - PyMac_PRECHECK(CFStringCreateWithCString); -#endif - if (!PyArg_ParseTuple(_args, "sl", - &cStr, - &encoding)) - return NULL; - _rv = CFStringCreateWithCString((CFAllocatorRef)NULL, - cStr, - encoding); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringCreateWithCharacters(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - UniChar *chars__in__; - UniCharCount chars__len__; - int chars__in_len__; -#ifndef CFStringCreateWithCharacters - PyMac_PRECHECK(CFStringCreateWithCharacters); -#endif - if (!PyArg_ParseTuple(_args, "u#", - &chars__in__, &chars__in_len__)) - return NULL; - chars__len__ = chars__in_len__; - _rv = CFStringCreateWithCharacters((CFAllocatorRef)NULL, - chars__in__, chars__len__); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringCreateWithPascalStringNoCopy(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - Str255 pStr; - CFStringEncoding encoding; -#ifndef CFStringCreateWithPascalStringNoCopy - PyMac_PRECHECK(CFStringCreateWithPascalStringNoCopy); -#endif - if (!PyArg_ParseTuple(_args, "O&l", - PyMac_GetStr255, pStr, - &encoding)) - return NULL; - _rv = CFStringCreateWithPascalStringNoCopy((CFAllocatorRef)NULL, - pStr, - encoding, - (CFAllocatorRef)NULL); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringCreateWithCStringNoCopy(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - char* cStr; - CFStringEncoding encoding; -#ifndef CFStringCreateWithCStringNoCopy - PyMac_PRECHECK(CFStringCreateWithCStringNoCopy); -#endif - if (!PyArg_ParseTuple(_args, "sl", - &cStr, - &encoding)) - return NULL; - _rv = CFStringCreateWithCStringNoCopy((CFAllocatorRef)NULL, - cStr, - encoding, - (CFAllocatorRef)NULL); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringCreateWithCharactersNoCopy(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - UniChar *chars__in__; - UniCharCount chars__len__; - int chars__in_len__; -#ifndef CFStringCreateWithCharactersNoCopy - PyMac_PRECHECK(CFStringCreateWithCharactersNoCopy); -#endif - if (!PyArg_ParseTuple(_args, "u#", - &chars__in__, &chars__in_len__)) - return NULL; - chars__len__ = chars__in_len__; - _rv = CFStringCreateWithCharactersNoCopy((CFAllocatorRef)NULL, - chars__in__, chars__len__, - (CFAllocatorRef)NULL); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringCreateMutable(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFMutableStringRef _rv; - CFIndex maxLength; -#ifndef CFStringCreateMutable - PyMac_PRECHECK(CFStringCreateMutable); -#endif - if (!PyArg_ParseTuple(_args, "l", - &maxLength)) - return NULL; - _rv = CFStringCreateMutable((CFAllocatorRef)NULL, - maxLength); - _res = Py_BuildValue("O&", - CFMutableStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringCreateMutableCopy(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFMutableStringRef _rv; - CFIndex maxLength; - CFStringRef theString; -#ifndef CFStringCreateMutableCopy - PyMac_PRECHECK(CFStringCreateMutableCopy); -#endif - if (!PyArg_ParseTuple(_args, "lO&", - &maxLength, - CFStringRefObj_Convert, &theString)) - return NULL; - _rv = CFStringCreateMutableCopy((CFAllocatorRef)NULL, - maxLength, - theString); - _res = Py_BuildValue("O&", - CFMutableStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringCreateWithBytes(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - unsigned char *bytes__in__; - long bytes__len__; - int bytes__in_len__; - CFStringEncoding encoding; - Boolean isExternalRepresentation; -#ifndef CFStringCreateWithBytes - PyMac_PRECHECK(CFStringCreateWithBytes); -#endif - if (!PyArg_ParseTuple(_args, "s#ll", - &bytes__in__, &bytes__in_len__, - &encoding, - &isExternalRepresentation)) - return NULL; - bytes__len__ = bytes__in_len__; - _rv = CFStringCreateWithBytes((CFAllocatorRef)NULL, - bytes__in__, bytes__len__, - encoding, - isExternalRepresentation); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringGetSystemEncoding(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringEncoding _rv; -#ifndef CFStringGetSystemEncoding - PyMac_PRECHECK(CFStringGetSystemEncoding); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFStringGetSystemEncoding(); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFStringGetMaximumSizeForEncoding(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFIndex _rv; - CFIndex length; - CFStringEncoding encoding; -#ifndef CFStringGetMaximumSizeForEncoding - PyMac_PRECHECK(CFStringGetMaximumSizeForEncoding); -#endif - if (!PyArg_ParseTuple(_args, "ll", - &length, - &encoding)) - return NULL; - _rv = CFStringGetMaximumSizeForEncoding(length, - encoding); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFStringIsEncodingAvailable(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - CFStringEncoding encoding; -#ifndef CFStringIsEncodingAvailable - PyMac_PRECHECK(CFStringIsEncodingAvailable); -#endif - if (!PyArg_ParseTuple(_args, "l", - &encoding)) - return NULL; - _rv = CFStringIsEncodingAvailable(encoding); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFStringGetNameOfEncoding(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringEncoding encoding; -#ifndef CFStringGetNameOfEncoding - PyMac_PRECHECK(CFStringGetNameOfEncoding); -#endif - if (!PyArg_ParseTuple(_args, "l", - &encoding)) - return NULL; - _rv = CFStringGetNameOfEncoding(encoding); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringConvertEncodingToNSStringEncoding(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - UInt32 _rv; - CFStringEncoding encoding; -#ifndef CFStringConvertEncodingToNSStringEncoding - PyMac_PRECHECK(CFStringConvertEncodingToNSStringEncoding); -#endif - if (!PyArg_ParseTuple(_args, "l", - &encoding)) - return NULL; - _rv = CFStringConvertEncodingToNSStringEncoding(encoding); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFStringConvertNSStringEncodingToEncoding(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringEncoding _rv; - UInt32 encoding; -#ifndef CFStringConvertNSStringEncodingToEncoding - PyMac_PRECHECK(CFStringConvertNSStringEncodingToEncoding); -#endif - if (!PyArg_ParseTuple(_args, "l", - &encoding)) - return NULL; - _rv = CFStringConvertNSStringEncodingToEncoding(encoding); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFStringConvertEncodingToWindowsCodepage(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - UInt32 _rv; - CFStringEncoding encoding; -#ifndef CFStringConvertEncodingToWindowsCodepage - PyMac_PRECHECK(CFStringConvertEncodingToWindowsCodepage); -#endif - if (!PyArg_ParseTuple(_args, "l", - &encoding)) - return NULL; - _rv = CFStringConvertEncodingToWindowsCodepage(encoding); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFStringConvertWindowsCodepageToEncoding(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringEncoding _rv; - UInt32 codepage; -#ifndef CFStringConvertWindowsCodepageToEncoding - PyMac_PRECHECK(CFStringConvertWindowsCodepageToEncoding); -#endif - if (!PyArg_ParseTuple(_args, "l", - &codepage)) - return NULL; - _rv = CFStringConvertWindowsCodepageToEncoding(codepage); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFStringConvertEncodingToIANACharSetName(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - CFStringEncoding encoding; -#ifndef CFStringConvertEncodingToIANACharSetName - PyMac_PRECHECK(CFStringConvertEncodingToIANACharSetName); -#endif - if (!PyArg_ParseTuple(_args, "l", - &encoding)) - return NULL; - _rv = CFStringConvertEncodingToIANACharSetName(encoding); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFStringGetMostCompatibleMacStringEncoding(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringEncoding _rv; - CFStringEncoding encoding; -#ifndef CFStringGetMostCompatibleMacStringEncoding - PyMac_PRECHECK(CFStringGetMostCompatibleMacStringEncoding); -#endif - if (!PyArg_ParseTuple(_args, "l", - &encoding)) - return NULL; - _rv = CFStringGetMostCompatibleMacStringEncoding(encoding); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF___CFStringMakeConstantString(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFStringRef _rv; - char* cStr; -#ifndef __CFStringMakeConstantString - PyMac_PRECHECK(__CFStringMakeConstantString); -#endif - if (!PyArg_ParseTuple(_args, "s", - &cStr)) - return NULL; - _rv = __CFStringMakeConstantString(cStr); - _res = Py_BuildValue("O&", - CFStringRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFURLGetTypeID(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFTypeID _rv; -#ifndef CFURLGetTypeID - PyMac_PRECHECK(CFURLGetTypeID); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CFURLGetTypeID(); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CF_CFURLCreateWithBytes(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - unsigned char *URLBytes__in__; - long URLBytes__len__; - int URLBytes__in_len__; - CFStringEncoding encoding; - CFURLRef baseURL; -#ifndef CFURLCreateWithBytes - PyMac_PRECHECK(CFURLCreateWithBytes); -#endif - if (!PyArg_ParseTuple(_args, "s#lO&", - &URLBytes__in__, &URLBytes__in_len__, - &encoding, - OptionalCFURLRefObj_Convert, &baseURL)) - return NULL; - URLBytes__len__ = URLBytes__in_len__; - _rv = CFURLCreateWithBytes((CFAllocatorRef)NULL, - URLBytes__in__, URLBytes__len__, - encoding, - baseURL); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFURLCreateFromFileSystemRepresentation(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - unsigned char *buffer__in__; - long buffer__len__; - int buffer__in_len__; - Boolean isDirectory; -#ifndef CFURLCreateFromFileSystemRepresentation - PyMac_PRECHECK(CFURLCreateFromFileSystemRepresentation); -#endif - if (!PyArg_ParseTuple(_args, "s#l", - &buffer__in__, &buffer__in_len__, - &isDirectory)) - return NULL; - buffer__len__ = buffer__in_len__; - _rv = CFURLCreateFromFileSystemRepresentation((CFAllocatorRef)NULL, - buffer__in__, buffer__len__, - isDirectory); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFURLCreateFromFileSystemRepresentationRelativeToBase(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - unsigned char *buffer__in__; - long buffer__len__; - int buffer__in_len__; - Boolean isDirectory; - CFURLRef baseURL; -#ifndef CFURLCreateFromFileSystemRepresentationRelativeToBase - PyMac_PRECHECK(CFURLCreateFromFileSystemRepresentationRelativeToBase); -#endif - if (!PyArg_ParseTuple(_args, "s#lO&", - &buffer__in__, &buffer__in_len__, - &isDirectory, - OptionalCFURLRefObj_Convert, &baseURL)) - return NULL; - buffer__len__ = buffer__in_len__; - _rv = CFURLCreateFromFileSystemRepresentationRelativeToBase((CFAllocatorRef)NULL, - buffer__in__, buffer__len__, - isDirectory, - baseURL); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CF_CFURLCreateFromFSRef(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CFURLRef _rv; - FSRef fsRef; -#ifndef CFURLCreateFromFSRef - PyMac_PRECHECK(CFURLCreateFromFSRef); -#endif - if (!PyArg_ParseTuple(_args, "O&", - PyMac_GetFSRef, &fsRef)) - return NULL; - _rv = CFURLCreateFromFSRef((CFAllocatorRef)NULL, - &fsRef); - _res = Py_BuildValue("O&", - CFURLRefObj_New, _rv); - return _res; -} - -static PyObject *CF_toCF(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - - CFTypeRef rv; - CFTypeID typeid; - - if (!PyArg_ParseTuple(_args, "O&", PyCF_Python2CF, &rv)) - return NULL; - typeid = CFGetTypeID(rv); - - if (typeid == CFStringGetTypeID()) - return Py_BuildValue("O&", CFStringRefObj_New, rv); - if (typeid == CFArrayGetTypeID()) - return Py_BuildValue("O&", CFArrayRefObj_New, rv); - if (typeid == CFDictionaryGetTypeID()) - return Py_BuildValue("O&", CFDictionaryRefObj_New, rv); - if (typeid == CFURLGetTypeID()) - return Py_BuildValue("O&", CFURLRefObj_New, rv); - - _res = Py_BuildValue("O&", CFTypeRefObj_New, rv); - return _res; - -} - -static PyMethodDef CF_methods[] = { - {"__CFRangeMake", (PyCFunction)CF___CFRangeMake, 1, - PyDoc_STR("(CFIndex loc, CFIndex len) -> (CFRange _rv)")}, - {"CFAllocatorGetTypeID", (PyCFunction)CF_CFAllocatorGetTypeID, 1, - PyDoc_STR("() -> (CFTypeID _rv)")}, - {"CFAllocatorGetPreferredSizeForSize", (PyCFunction)CF_CFAllocatorGetPreferredSizeForSize, 1, - PyDoc_STR("(CFIndex size, CFOptionFlags hint) -> (CFIndex _rv)")}, - {"CFCopyTypeIDDescription", (PyCFunction)CF_CFCopyTypeIDDescription, 1, - PyDoc_STR("(CFTypeID type_id) -> (CFStringRef _rv)")}, - {"CFArrayGetTypeID", (PyCFunction)CF_CFArrayGetTypeID, 1, - PyDoc_STR("() -> (CFTypeID _rv)")}, - {"CFArrayCreateMutable", (PyCFunction)CF_CFArrayCreateMutable, 1, - PyDoc_STR("(CFIndex capacity) -> (CFMutableArrayRef _rv)")}, - {"CFArrayCreateMutableCopy", (PyCFunction)CF_CFArrayCreateMutableCopy, 1, - PyDoc_STR("(CFIndex capacity, CFArrayRef theArray) -> (CFMutableArrayRef _rv)")}, - {"CFDataGetTypeID", (PyCFunction)CF_CFDataGetTypeID, 1, - PyDoc_STR("() -> (CFTypeID _rv)")}, - {"CFDataCreate", (PyCFunction)CF_CFDataCreate, 1, - PyDoc_STR("(Buffer bytes) -> (CFDataRef _rv)")}, - {"CFDataCreateWithBytesNoCopy", (PyCFunction)CF_CFDataCreateWithBytesNoCopy, 1, - PyDoc_STR("(Buffer bytes) -> (CFDataRef _rv)")}, - {"CFDataCreateMutable", (PyCFunction)CF_CFDataCreateMutable, 1, - PyDoc_STR("(CFIndex capacity) -> (CFMutableDataRef _rv)")}, - {"CFDataCreateMutableCopy", (PyCFunction)CF_CFDataCreateMutableCopy, 1, - PyDoc_STR("(CFIndex capacity, CFDataRef theData) -> (CFMutableDataRef _rv)")}, - {"CFDictionaryGetTypeID", (PyCFunction)CF_CFDictionaryGetTypeID, 1, - PyDoc_STR("() -> (CFTypeID _rv)")}, - {"CFDictionaryCreateMutable", (PyCFunction)CF_CFDictionaryCreateMutable, 1, - PyDoc_STR("(CFIndex capacity) -> (CFMutableDictionaryRef _rv)")}, - {"CFDictionaryCreateMutableCopy", (PyCFunction)CF_CFDictionaryCreateMutableCopy, 1, - PyDoc_STR("(CFIndex capacity, CFDictionaryRef theDict) -> (CFMutableDictionaryRef _rv)")}, - {"CFPreferencesCopyAppValue", (PyCFunction)CF_CFPreferencesCopyAppValue, 1, - PyDoc_STR("(CFStringRef key, CFStringRef applicationID) -> (CFTypeRef _rv)")}, - {"CFPreferencesGetAppBooleanValue", (PyCFunction)CF_CFPreferencesGetAppBooleanValue, 1, - PyDoc_STR("(CFStringRef key, CFStringRef applicationID) -> (Boolean _rv, Boolean keyExistsAndHasValidFormat)")}, - {"CFPreferencesGetAppIntegerValue", (PyCFunction)CF_CFPreferencesGetAppIntegerValue, 1, - PyDoc_STR("(CFStringRef key, CFStringRef applicationID) -> (CFIndex _rv, Boolean keyExistsAndHasValidFormat)")}, - {"CFPreferencesSetAppValue", (PyCFunction)CF_CFPreferencesSetAppValue, 1, - PyDoc_STR("(CFStringRef key, CFTypeRef value, CFStringRef applicationID) -> None")}, - {"CFPreferencesAddSuitePreferencesToApp", (PyCFunction)CF_CFPreferencesAddSuitePreferencesToApp, 1, - PyDoc_STR("(CFStringRef applicationID, CFStringRef suiteID) -> None")}, - {"CFPreferencesRemoveSuitePreferencesFromApp", (PyCFunction)CF_CFPreferencesRemoveSuitePreferencesFromApp, 1, - PyDoc_STR("(CFStringRef applicationID, CFStringRef suiteID) -> None")}, - {"CFPreferencesAppSynchronize", (PyCFunction)CF_CFPreferencesAppSynchronize, 1, - PyDoc_STR("(CFStringRef applicationID) -> (Boolean _rv)")}, - {"CFPreferencesCopyValue", (PyCFunction)CF_CFPreferencesCopyValue, 1, - PyDoc_STR("(CFStringRef key, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> (CFTypeRef _rv)")}, - {"CFPreferencesCopyMultiple", (PyCFunction)CF_CFPreferencesCopyMultiple, 1, - PyDoc_STR("(CFArrayRef keysToFetch, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> (CFDictionaryRef _rv)")}, - {"CFPreferencesSetValue", (PyCFunction)CF_CFPreferencesSetValue, 1, - PyDoc_STR("(CFStringRef key, CFTypeRef value, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> None")}, - {"CFPreferencesSetMultiple", (PyCFunction)CF_CFPreferencesSetMultiple, 1, - PyDoc_STR("(CFDictionaryRef keysToSet, CFArrayRef keysToRemove, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> None")}, - {"CFPreferencesSynchronize", (PyCFunction)CF_CFPreferencesSynchronize, 1, - PyDoc_STR("(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> (Boolean _rv)")}, - {"CFPreferencesCopyApplicationList", (PyCFunction)CF_CFPreferencesCopyApplicationList, 1, - PyDoc_STR("(CFStringRef userName, CFStringRef hostName) -> (CFArrayRef _rv)")}, - {"CFPreferencesCopyKeyList", (PyCFunction)CF_CFPreferencesCopyKeyList, 1, - PyDoc_STR("(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> (CFArrayRef _rv)")}, - {"CFStringGetTypeID", (PyCFunction)CF_CFStringGetTypeID, 1, - PyDoc_STR("() -> (CFTypeID _rv)")}, - {"CFStringCreateWithPascalString", (PyCFunction)CF_CFStringCreateWithPascalString, 1, - PyDoc_STR("(Str255 pStr, CFStringEncoding encoding) -> (CFStringRef _rv)")}, - {"CFStringCreateWithCString", (PyCFunction)CF_CFStringCreateWithCString, 1, - PyDoc_STR("(char* cStr, CFStringEncoding encoding) -> (CFStringRef _rv)")}, - {"CFStringCreateWithCharacters", (PyCFunction)CF_CFStringCreateWithCharacters, 1, - PyDoc_STR("(Buffer chars) -> (CFStringRef _rv)")}, - {"CFStringCreateWithPascalStringNoCopy", (PyCFunction)CF_CFStringCreateWithPascalStringNoCopy, 1, - PyDoc_STR("(Str255 pStr, CFStringEncoding encoding) -> (CFStringRef _rv)")}, - {"CFStringCreateWithCStringNoCopy", (PyCFunction)CF_CFStringCreateWithCStringNoCopy, 1, - PyDoc_STR("(char* cStr, CFStringEncoding encoding) -> (CFStringRef _rv)")}, - {"CFStringCreateWithCharactersNoCopy", (PyCFunction)CF_CFStringCreateWithCharactersNoCopy, 1, - PyDoc_STR("(Buffer chars) -> (CFStringRef _rv)")}, - {"CFStringCreateMutable", (PyCFunction)CF_CFStringCreateMutable, 1, - PyDoc_STR("(CFIndex maxLength) -> (CFMutableStringRef _rv)")}, - {"CFStringCreateMutableCopy", (PyCFunction)CF_CFStringCreateMutableCopy, 1, - PyDoc_STR("(CFIndex maxLength, CFStringRef theString) -> (CFMutableStringRef _rv)")}, - {"CFStringCreateWithBytes", (PyCFunction)CF_CFStringCreateWithBytes, 1, - PyDoc_STR("(Buffer bytes, CFStringEncoding encoding, Boolean isExternalRepresentation) -> (CFStringRef _rv)")}, - {"CFStringGetSystemEncoding", (PyCFunction)CF_CFStringGetSystemEncoding, 1, - PyDoc_STR("() -> (CFStringEncoding _rv)")}, - {"CFStringGetMaximumSizeForEncoding", (PyCFunction)CF_CFStringGetMaximumSizeForEncoding, 1, - PyDoc_STR("(CFIndex length, CFStringEncoding encoding) -> (CFIndex _rv)")}, - {"CFStringIsEncodingAvailable", (PyCFunction)CF_CFStringIsEncodingAvailable, 1, - PyDoc_STR("(CFStringEncoding encoding) -> (Boolean _rv)")}, - {"CFStringGetNameOfEncoding", (PyCFunction)CF_CFStringGetNameOfEncoding, 1, - PyDoc_STR("(CFStringEncoding encoding) -> (CFStringRef _rv)")}, - {"CFStringConvertEncodingToNSStringEncoding", (PyCFunction)CF_CFStringConvertEncodingToNSStringEncoding, 1, - PyDoc_STR("(CFStringEncoding encoding) -> (UInt32 _rv)")}, - {"CFStringConvertNSStringEncodingToEncoding", (PyCFunction)CF_CFStringConvertNSStringEncodingToEncoding, 1, - PyDoc_STR("(UInt32 encoding) -> (CFStringEncoding _rv)")}, - {"CFStringConvertEncodingToWindowsCodepage", (PyCFunction)CF_CFStringConvertEncodingToWindowsCodepage, 1, - PyDoc_STR("(CFStringEncoding encoding) -> (UInt32 _rv)")}, - {"CFStringConvertWindowsCodepageToEncoding", (PyCFunction)CF_CFStringConvertWindowsCodepageToEncoding, 1, - PyDoc_STR("(UInt32 codepage) -> (CFStringEncoding _rv)")}, - {"CFStringConvertEncodingToIANACharSetName", (PyCFunction)CF_CFStringConvertEncodingToIANACharSetName, 1, - PyDoc_STR("(CFStringEncoding encoding) -> (CFStringRef _rv)")}, - {"CFStringGetMostCompatibleMacStringEncoding", (PyCFunction)CF_CFStringGetMostCompatibleMacStringEncoding, 1, - PyDoc_STR("(CFStringEncoding encoding) -> (CFStringEncoding _rv)")}, - {"__CFStringMakeConstantString", (PyCFunction)CF___CFStringMakeConstantString, 1, - PyDoc_STR("(char* cStr) -> (CFStringRef _rv)")}, - {"CFURLGetTypeID", (PyCFunction)CF_CFURLGetTypeID, 1, - PyDoc_STR("() -> (CFTypeID _rv)")}, - {"CFURLCreateWithBytes", (PyCFunction)CF_CFURLCreateWithBytes, 1, - PyDoc_STR("(Buffer URLBytes, CFStringEncoding encoding, CFURLRef baseURL) -> (CFURLRef _rv)")}, - {"CFURLCreateFromFileSystemRepresentation", (PyCFunction)CF_CFURLCreateFromFileSystemRepresentation, 1, - PyDoc_STR("(Buffer buffer, Boolean isDirectory) -> (CFURLRef _rv)")}, - {"CFURLCreateFromFileSystemRepresentationRelativeToBase", (PyCFunction)CF_CFURLCreateFromFileSystemRepresentationRelativeToBase, 1, - PyDoc_STR("(Buffer buffer, Boolean isDirectory, CFURLRef baseURL) -> (CFURLRef _rv)")}, - {"CFURLCreateFromFSRef", (PyCFunction)CF_CFURLCreateFromFSRef, 1, - PyDoc_STR("(FSRef fsRef) -> (CFURLRef _rv)")}, - {"toCF", (PyCFunction)CF_toCF, 1, - PyDoc_STR("(python_object) -> (CF_object)")}, - {NULL, NULL, 0} -}; - - - - -/* Routines to convert any CF type to/from the corresponding CFxxxObj */ -PyObject *CFObj_New(CFTypeRef itself) -{ - if (itself == NULL) - { - PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL"); - return NULL; - } - if (CFGetTypeID(itself) == CFArrayGetTypeID()) return CFArrayRefObj_New((CFArrayRef)itself); - if (CFGetTypeID(itself) == CFDictionaryGetTypeID()) return CFDictionaryRefObj_New((CFDictionaryRef)itself); - if (CFGetTypeID(itself) == CFDataGetTypeID()) return CFDataRefObj_New((CFDataRef)itself); - if (CFGetTypeID(itself) == CFStringGetTypeID()) return CFStringRefObj_New((CFStringRef)itself); - if (CFGetTypeID(itself) == CFURLGetTypeID()) return CFURLRefObj_New((CFURLRef)itself); - /* XXXX Or should we use PyCF_CF2Python here?? */ - return CFTypeRefObj_New(itself); -} -int CFObj_Convert(PyObject *v, CFTypeRef *p_itself) -{ - - if (v == Py_None) { *p_itself = NULL; return 1; } - /* Check for other CF objects here */ - - if (!CFTypeRefObj_Check(v) && - !CFArrayRefObj_Check(v) && - !CFMutableArrayRefObj_Check(v) && - !CFDictionaryRefObj_Check(v) && - !CFMutableDictionaryRefObj_Check(v) && - !CFDataRefObj_Check(v) && - !CFMutableDataRefObj_Check(v) && - !CFStringRefObj_Check(v) && - !CFMutableStringRefObj_Check(v) && - !CFURLRefObj_Check(v) ) - { - /* XXXX Or should we use PyCF_Python2CF here?? */ - PyErr_SetString(PyExc_TypeError, "CF object required"); - return 0; - } - *p_itself = ((CFTypeRefObject *)v)->ob_itself; - return 1; -} - - -void init_CF(void) -{ - PyObject *m; - PyObject *d; - - - - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFTypeRef, CFObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFTypeRef, CFObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFTypeRef, CFTypeRefObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFTypeRef, CFTypeRefObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFStringRef, CFStringRefObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFStringRef, CFStringRefObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFMutableStringRef, CFMutableStringRefObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFMutableStringRef, CFMutableStringRefObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFArrayRef, CFArrayRefObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFArrayRef, CFArrayRefObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFMutableArrayRef, CFMutableArrayRefObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFMutableArrayRef, CFMutableArrayRefObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFDictionaryRef, CFDictionaryRefObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFDictionaryRef, CFDictionaryRefObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFMutableDictionaryRef, CFMutableDictionaryRefObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFMutableDictionaryRef, CFMutableDictionaryRefObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(CFURLRef, CFURLRefObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(CFURLRef, CFURLRefObj_Convert); - - - m = Py_InitModule("_CF", CF_methods); - d = PyModule_GetDict(m); - CF_Error = PyMac_GetOSErrException(); - if (CF_Error == NULL || - PyDict_SetItemString(d, "Error", CF_Error) != 0) - return; - CFTypeRef_Type.ob_type = &PyType_Type; - if (PyType_Ready(&CFTypeRef_Type) < 0) return; - Py_INCREF(&CFTypeRef_Type); - PyModule_AddObject(m, "CFTypeRef", (PyObject *)&CFTypeRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFTypeRef_Type); - PyModule_AddObject(m, "CFTypeRefType", (PyObject *)&CFTypeRef_Type); - CFArrayRef_Type.ob_type = &PyType_Type; - CFArrayRef_Type.tp_base = &CFTypeRef_Type; - if (PyType_Ready(&CFArrayRef_Type) < 0) return; - Py_INCREF(&CFArrayRef_Type); - PyModule_AddObject(m, "CFArrayRef", (PyObject *)&CFArrayRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFArrayRef_Type); - PyModule_AddObject(m, "CFArrayRefType", (PyObject *)&CFArrayRef_Type); - CFMutableArrayRef_Type.ob_type = &PyType_Type; - CFMutableArrayRef_Type.tp_base = &CFArrayRef_Type; - if (PyType_Ready(&CFMutableArrayRef_Type) < 0) return; - Py_INCREF(&CFMutableArrayRef_Type); - PyModule_AddObject(m, "CFMutableArrayRef", (PyObject *)&CFMutableArrayRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFMutableArrayRef_Type); - PyModule_AddObject(m, "CFMutableArrayRefType", (PyObject *)&CFMutableArrayRef_Type); - CFDictionaryRef_Type.ob_type = &PyType_Type; - CFDictionaryRef_Type.tp_base = &CFTypeRef_Type; - if (PyType_Ready(&CFDictionaryRef_Type) < 0) return; - Py_INCREF(&CFDictionaryRef_Type); - PyModule_AddObject(m, "CFDictionaryRef", (PyObject *)&CFDictionaryRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFDictionaryRef_Type); - PyModule_AddObject(m, "CFDictionaryRefType", (PyObject *)&CFDictionaryRef_Type); - CFMutableDictionaryRef_Type.ob_type = &PyType_Type; - CFMutableDictionaryRef_Type.tp_base = &CFDictionaryRef_Type; - if (PyType_Ready(&CFMutableDictionaryRef_Type) < 0) return; - Py_INCREF(&CFMutableDictionaryRef_Type); - PyModule_AddObject(m, "CFMutableDictionaryRef", (PyObject *)&CFMutableDictionaryRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFMutableDictionaryRef_Type); - PyModule_AddObject(m, "CFMutableDictionaryRefType", (PyObject *)&CFMutableDictionaryRef_Type); - CFDataRef_Type.ob_type = &PyType_Type; - CFDataRef_Type.tp_base = &CFTypeRef_Type; - if (PyType_Ready(&CFDataRef_Type) < 0) return; - Py_INCREF(&CFDataRef_Type); - PyModule_AddObject(m, "CFDataRef", (PyObject *)&CFDataRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFDataRef_Type); - PyModule_AddObject(m, "CFDataRefType", (PyObject *)&CFDataRef_Type); - CFMutableDataRef_Type.ob_type = &PyType_Type; - CFMutableDataRef_Type.tp_base = &CFDataRef_Type; - if (PyType_Ready(&CFMutableDataRef_Type) < 0) return; - Py_INCREF(&CFMutableDataRef_Type); - PyModule_AddObject(m, "CFMutableDataRef", (PyObject *)&CFMutableDataRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFMutableDataRef_Type); - PyModule_AddObject(m, "CFMutableDataRefType", (PyObject *)&CFMutableDataRef_Type); - CFStringRef_Type.ob_type = &PyType_Type; - CFStringRef_Type.tp_base = &CFTypeRef_Type; - if (PyType_Ready(&CFStringRef_Type) < 0) return; - Py_INCREF(&CFStringRef_Type); - PyModule_AddObject(m, "CFStringRef", (PyObject *)&CFStringRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFStringRef_Type); - PyModule_AddObject(m, "CFStringRefType", (PyObject *)&CFStringRef_Type); - CFMutableStringRef_Type.ob_type = &PyType_Type; - CFMutableStringRef_Type.tp_base = &CFStringRef_Type; - if (PyType_Ready(&CFMutableStringRef_Type) < 0) return; - Py_INCREF(&CFMutableStringRef_Type); - PyModule_AddObject(m, "CFMutableStringRef", (PyObject *)&CFMutableStringRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFMutableStringRef_Type); - PyModule_AddObject(m, "CFMutableStringRefType", (PyObject *)&CFMutableStringRef_Type); - CFURLRef_Type.ob_type = &PyType_Type; - CFURLRef_Type.tp_base = &CFTypeRef_Type; - if (PyType_Ready(&CFURLRef_Type) < 0) return; - Py_INCREF(&CFURLRef_Type); - PyModule_AddObject(m, "CFURLRef", (PyObject *)&CFURLRef_Type); - /* Backward-compatible name */ - Py_INCREF(&CFURLRef_Type); - PyModule_AddObject(m, "CFURLRefType", (PyObject *)&CFURLRef_Type); - -#define _STRINGCONST(name) PyModule_AddObject(m, #name, CFStringRefObj_New(name)) - _STRINGCONST(kCFPreferencesAnyApplication); - _STRINGCONST(kCFPreferencesCurrentApplication); - _STRINGCONST(kCFPreferencesAnyHost); - _STRINGCONST(kCFPreferencesCurrentHost); - _STRINGCONST(kCFPreferencesAnyUser); - _STRINGCONST(kCFPreferencesCurrentUser); - - - -} - -/* ========================= End module _CF ========================= */ - |
