ยปCore Development>Code coverage>Mac/Modules/cf/_CFmodule.c

Python code coverage for Mac/Modules/cf/_CFmodule.c

#countcontent
1n/a
2n/a/* =========================== Module _CF =========================== */
3n/a
4n/a#include "Python.h"
5n/a
6n/a
7n/a
8n/a#include "pymactoolbox.h"
9n/a
10n/a/* Macro to test whether a weak-loaded CFM function exists */
11n/a#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
12n/a PyErr_SetString(PyExc_NotImplementedError, \
13n/a "Not available in this shared library/OS version"); \
14n/a return NULL; \
15n/a }} while(0)
16n/a
17n/a
18n/a#include <CoreServices/CoreServices.h>
19n/a
20n/a#include "pycfbridge.h"
21n/a
22n/a#ifdef USE_TOOLBOX_OBJECT_GLUE
23n/aextern PyObject *_CFObj_New(CFTypeRef);
24n/aextern int _CFObj_Convert(PyObject *, CFTypeRef *);
25n/a#define CFObj_New _CFObj_New
26n/a#define CFObj_Convert _CFObj_Convert
27n/a
28n/aextern PyObject *_CFTypeRefObj_New(CFTypeRef);
29n/aextern int _CFTypeRefObj_Convert(PyObject *, CFTypeRef *);
30n/a#define CFTypeRefObj_New _CFTypeRefObj_New
31n/a#define CFTypeRefObj_Convert _CFTypeRefObj_Convert
32n/a
33n/aextern PyObject *_CFStringRefObj_New(CFStringRef);
34n/aextern int _CFStringRefObj_Convert(PyObject *, CFStringRef *);
35n/a#define CFStringRefObj_New _CFStringRefObj_New
36n/a#define CFStringRefObj_Convert _CFStringRefObj_Convert
37n/a
38n/aextern PyObject *_CFMutableStringRefObj_New(CFMutableStringRef);
39n/aextern int _CFMutableStringRefObj_Convert(PyObject *, CFMutableStringRef *);
40n/a#define CFMutableStringRefObj_New _CFMutableStringRefObj_New
41n/a#define CFMutableStringRefObj_Convert _CFMutableStringRefObj_Convert
42n/a
43n/aextern PyObject *_CFArrayRefObj_New(CFArrayRef);
44n/aextern int _CFArrayRefObj_Convert(PyObject *, CFArrayRef *);
45n/a#define CFArrayRefObj_New _CFArrayRefObj_New
46n/a#define CFArrayRefObj_Convert _CFArrayRefObj_Convert
47n/a
48n/aextern PyObject *_CFMutableArrayRefObj_New(CFMutableArrayRef);
49n/aextern int _CFMutableArrayRefObj_Convert(PyObject *, CFMutableArrayRef *);
50n/a#define CFMutableArrayRefObj_New _CFMutableArrayRefObj_New
51n/a#define CFMutableArrayRefObj_Convert _CFMutableArrayRefObj_Convert
52n/a
53n/aextern PyObject *_CFDataRefObj_New(CFDataRef);
54n/aextern int _CFDataRefObj_Convert(PyObject *, CFDataRef *);
55n/a#define CFDataRefObj_New _CFDataRefObj_New
56n/a#define CFDataRefObj_Convert _CFDataRefObj_Convert
57n/a
58n/aextern PyObject *_CFMutableDataRefObj_New(CFMutableDataRef);
59n/aextern int _CFMutableDataRefObj_Convert(PyObject *, CFMutableDataRef *);
60n/a#define CFMutableDataRefObj_New _CFMutableDataRefObj_New
61n/a#define CFMutableDataRefObj_Convert _CFMutableDataRefObj_Convert
62n/a
63n/aextern PyObject *_CFDictionaryRefObj_New(CFDictionaryRef);
64n/aextern int _CFDictionaryRefObj_Convert(PyObject *, CFDictionaryRef *);
65n/a#define CFDictionaryRefObj_New _CFDictionaryRefObj_New
66n/a#define CFDictionaryRefObj_Convert _CFDictionaryRefObj_Convert
67n/a
68n/aextern PyObject *_CFMutableDictionaryRefObj_New(CFMutableDictionaryRef);
69n/aextern int _CFMutableDictionaryRefObj_Convert(PyObject *, CFMutableDictionaryRef *);
70n/a#define CFMutableDictionaryRefObj_New _CFMutableDictionaryRefObj_New
71n/a#define CFMutableDictionaryRefObj_Convert _CFMutableDictionaryRefObj_Convert
72n/a
73n/aextern PyObject *_CFURLRefObj_New(CFURLRef);
74n/aextern int _CFURLRefObj_Convert(PyObject *, CFURLRef *);
75n/aextern int _OptionalCFURLRefObj_Convert(PyObject *, CFURLRef *);
76n/a#define CFURLRefObj_New _CFURLRefObj_New
77n/a#define CFURLRefObj_Convert _CFURLRefObj_Convert
78n/a#define OptionalCFURLRefObj_Convert _OptionalCFURLRefObj_Convert
79n/a#endif
80n/a
81n/a/*
82n/a** Parse/generate CFRange records
83n/a*/
84n/aPyObject *CFRange_New(CFRange *itself)
85n/a{
86n/a
87n/a return Py_BuildValue("ll", (long)itself->location, (long)itself->length);
88n/a}
89n/a
90n/aint
91n/aCFRange_Convert(PyObject *v, CFRange *p_itself)
92n/a{
93n/a long location, length;
94n/a
95n/a if( !PyArg_ParseTuple(v, "ll", &location, &length) )
96n/a return 0;
97n/a p_itself->location = (CFIndex)location;
98n/a p_itself->length = (CFIndex)length;
99n/a return 1;
100n/a}
101n/a
102n/a/* Optional CFURL argument or None (passed as NULL) */
103n/aint
104n/aOptionalCFURLRefObj_Convert(PyObject *v, CFURLRef *p_itself)
105n/a{
106n/a if ( v == Py_None ) {
107n/a p_itself = NULL;
108n/a return 1;
109n/a }
110n/a return CFURLRefObj_Convert(v, p_itself);
111n/a}
112n/a
113n/astatic PyObject *CF_Error;
114n/a
115n/a/* --------------------- Object type CFTypeRef ---------------------- */
116n/a
117n/aPyTypeObject CFTypeRef_Type;
118n/a
119n/a#define CFTypeRefObj_Check(x) ((x)->ob_type == &CFTypeRef_Type || PyObject_TypeCheck((x), &CFTypeRef_Type))
120n/a
121n/atypedef struct CFTypeRefObject {
122n/a PyObject_HEAD
123n/a CFTypeRef ob_itself;
124n/a void (*ob_freeit)(CFTypeRef ptr);
125n/a} CFTypeRefObject;
126n/a
127n/aPyObject *CFTypeRefObj_New(CFTypeRef itself)
128n/a{
129n/a CFTypeRefObject *it;
130n/a if (itself == NULL)
131n/a {
132n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
133n/a return NULL;
134n/a }
135n/a it = PyObject_NEW(CFTypeRefObject, &CFTypeRef_Type);
136n/a if (it == NULL) return NULL;
137n/a it->ob_itself = itself;
138n/a it->ob_freeit = CFRelease;
139n/a return (PyObject *)it;
140n/a}
141n/a
142n/aint CFTypeRefObj_Convert(PyObject *v, CFTypeRef *p_itself)
143n/a{
144n/a
145n/a if (v == Py_None) { *p_itself = NULL; return 1; }
146n/a /* Check for other CF objects here */
147n/a
148n/a if (!CFTypeRefObj_Check(v))
149n/a {
150n/a PyErr_SetString(PyExc_TypeError, "CFTypeRef required");
151n/a return 0;
152n/a }
153n/a *p_itself = ((CFTypeRefObject *)v)->ob_itself;
154n/a return 1;
155n/a}
156n/a
157n/astatic void CFTypeRefObj_dealloc(CFTypeRefObject *self)
158n/a{
159n/a if (self->ob_freeit && self->ob_itself)
160n/a {
161n/a self->ob_freeit((CFTypeRef)self->ob_itself);
162n/a self->ob_itself = NULL;
163n/a }
164n/a self->ob_type->tp_free((PyObject *)self);
165n/a}
166n/a
167n/astatic PyObject *CFTypeRefObj_CFGetTypeID(CFTypeRefObject *_self, PyObject *_args)
168n/a{
169n/a PyObject *_res = NULL;
170n/a CFTypeID _rv;
171n/a#ifndef CFGetTypeID
172n/a PyMac_PRECHECK(CFGetTypeID);
173n/a#endif
174n/a if (!PyArg_ParseTuple(_args, ""))
175n/a return NULL;
176n/a _rv = CFGetTypeID(_self->ob_itself);
177n/a _res = Py_BuildValue("l",
178n/a _rv);
179n/a return _res;
180n/a}
181n/a
182n/astatic PyObject *CFTypeRefObj_CFRetain(CFTypeRefObject *_self, PyObject *_args)
183n/a{
184n/a PyObject *_res = NULL;
185n/a CFTypeRef _rv;
186n/a#ifndef CFRetain
187n/a PyMac_PRECHECK(CFRetain);
188n/a#endif
189n/a if (!PyArg_ParseTuple(_args, ""))
190n/a return NULL;
191n/a _rv = CFRetain(_self->ob_itself);
192n/a _res = Py_BuildValue("O&",
193n/a CFTypeRefObj_New, _rv);
194n/a return _res;
195n/a}
196n/a
197n/astatic PyObject *CFTypeRefObj_CFRelease(CFTypeRefObject *_self, PyObject *_args)
198n/a{
199n/a PyObject *_res = NULL;
200n/a#ifndef CFRelease
201n/a PyMac_PRECHECK(CFRelease);
202n/a#endif
203n/a if (!PyArg_ParseTuple(_args, ""))
204n/a return NULL;
205n/a CFRelease(_self->ob_itself);
206n/a Py_INCREF(Py_None);
207n/a _res = Py_None;
208n/a return _res;
209n/a}
210n/a
211n/astatic PyObject *CFTypeRefObj_CFGetRetainCount(CFTypeRefObject *_self, PyObject *_args)
212n/a{
213n/a PyObject *_res = NULL;
214n/a CFIndex _rv;
215n/a#ifndef CFGetRetainCount
216n/a PyMac_PRECHECK(CFGetRetainCount);
217n/a#endif
218n/a if (!PyArg_ParseTuple(_args, ""))
219n/a return NULL;
220n/a _rv = CFGetRetainCount(_self->ob_itself);
221n/a _res = Py_BuildValue("l",
222n/a _rv);
223n/a return _res;
224n/a}
225n/a
226n/astatic PyObject *CFTypeRefObj_CFEqual(CFTypeRefObject *_self, PyObject *_args)
227n/a{
228n/a PyObject *_res = NULL;
229n/a Boolean _rv;
230n/a CFTypeRef cf2;
231n/a#ifndef CFEqual
232n/a PyMac_PRECHECK(CFEqual);
233n/a#endif
234n/a if (!PyArg_ParseTuple(_args, "O&",
235n/a CFTypeRefObj_Convert, &cf2))
236n/a return NULL;
237n/a _rv = CFEqual(_self->ob_itself,
238n/a cf2);
239n/a _res = Py_BuildValue("l",
240n/a _rv);
241n/a return _res;
242n/a}
243n/a
244n/astatic PyObject *CFTypeRefObj_CFHash(CFTypeRefObject *_self, PyObject *_args)
245n/a{
246n/a PyObject *_res = NULL;
247n/a CFHashCode _rv;
248n/a#ifndef CFHash
249n/a PyMac_PRECHECK(CFHash);
250n/a#endif
251n/a if (!PyArg_ParseTuple(_args, ""))
252n/a return NULL;
253n/a _rv = CFHash(_self->ob_itself);
254n/a _res = Py_BuildValue("l",
255n/a _rv);
256n/a return _res;
257n/a}
258n/a
259n/astatic PyObject *CFTypeRefObj_CFCopyDescription(CFTypeRefObject *_self, PyObject *_args)
260n/a{
261n/a PyObject *_res = NULL;
262n/a CFStringRef _rv;
263n/a#ifndef CFCopyDescription
264n/a PyMac_PRECHECK(CFCopyDescription);
265n/a#endif
266n/a if (!PyArg_ParseTuple(_args, ""))
267n/a return NULL;
268n/a _rv = CFCopyDescription(_self->ob_itself);
269n/a _res = Py_BuildValue("O&",
270n/a CFStringRefObj_New, _rv);
271n/a return _res;
272n/a}
273n/a
274n/astatic PyObject *CFTypeRefObj_CFPropertyListCreateXMLData(CFTypeRefObject *_self, PyObject *_args)
275n/a{
276n/a PyObject *_res = NULL;
277n/a CFDataRef _rv;
278n/a if (!PyArg_ParseTuple(_args, ""))
279n/a return NULL;
280n/a _rv = CFPropertyListCreateXMLData((CFAllocatorRef)NULL,
281n/a _self->ob_itself);
282n/a _res = Py_BuildValue("O&",
283n/a CFDataRefObj_New, _rv);
284n/a return _res;
285n/a}
286n/a
287n/astatic PyObject *CFTypeRefObj_CFPropertyListCreateDeepCopy(CFTypeRefObject *_self, PyObject *_args)
288n/a{
289n/a PyObject *_res = NULL;
290n/a CFTypeRef _rv;
291n/a CFOptionFlags mutabilityOption;
292n/a if (!PyArg_ParseTuple(_args, "l",
293n/a &mutabilityOption))
294n/a return NULL;
295n/a _rv = CFPropertyListCreateDeepCopy((CFAllocatorRef)NULL,
296n/a _self->ob_itself,
297n/a mutabilityOption);
298n/a _res = Py_BuildValue("O&",
299n/a CFTypeRefObj_New, _rv);
300n/a return _res;
301n/a}
302n/a
303n/astatic PyObject *CFTypeRefObj_CFShow(CFTypeRefObject *_self, PyObject *_args)
304n/a{
305n/a PyObject *_res = NULL;
306n/a#ifndef CFShow
307n/a PyMac_PRECHECK(CFShow);
308n/a#endif
309n/a if (!PyArg_ParseTuple(_args, ""))
310n/a return NULL;
311n/a CFShow(_self->ob_itself);
312n/a Py_INCREF(Py_None);
313n/a _res = Py_None;
314n/a return _res;
315n/a}
316n/a
317n/astatic PyObject *CFTypeRefObj_CFPropertyListCreateFromXMLData(CFTypeRefObject *_self, PyObject *_args)
318n/a{
319n/a PyObject *_res = NULL;
320n/a
321n/a CFTypeRef _rv;
322n/a CFOptionFlags mutabilityOption;
323n/a CFStringRef errorString;
324n/a if (!PyArg_ParseTuple(_args, "l",
325n/a &mutabilityOption))
326n/a return NULL;
327n/a _rv = CFPropertyListCreateFromXMLData((CFAllocatorRef)NULL,
328n/a _self->ob_itself,
329n/a mutabilityOption,
330n/a &errorString);
331n/a if (errorString)
332n/a CFRelease(errorString);
333n/a if (_rv == NULL) {
334n/a PyErr_SetString(PyExc_RuntimeError, "Parse error in XML data");
335n/a return NULL;
336n/a }
337n/a _res = Py_BuildValue("O&",
338n/a CFTypeRefObj_New, _rv);
339n/a return _res;
340n/a
341n/a}
342n/a
343n/astatic PyObject *CFTypeRefObj_toPython(CFTypeRefObject *_self, PyObject *_args)
344n/a{
345n/a PyObject *_res = NULL;
346n/a
347n/a _res = PyCF_CF2Python(_self->ob_itself);
348n/a return _res;
349n/a
350n/a}
351n/a
352n/astatic PyMethodDef CFTypeRefObj_methods[] = {
353n/a {"CFGetTypeID", (PyCFunction)CFTypeRefObj_CFGetTypeID, 1,
354n/a PyDoc_STR("() -> (CFTypeID _rv)")},
355n/a {"CFRetain", (PyCFunction)CFTypeRefObj_CFRetain, 1,
356n/a PyDoc_STR("() -> (CFTypeRef _rv)")},
357n/a {"CFRelease", (PyCFunction)CFTypeRefObj_CFRelease, 1,
358n/a PyDoc_STR("() -> None")},
359n/a {"CFGetRetainCount", (PyCFunction)CFTypeRefObj_CFGetRetainCount, 1,
360n/a PyDoc_STR("() -> (CFIndex _rv)")},
361n/a {"CFEqual", (PyCFunction)CFTypeRefObj_CFEqual, 1,
362n/a PyDoc_STR("(CFTypeRef cf2) -> (Boolean _rv)")},
363n/a {"CFHash", (PyCFunction)CFTypeRefObj_CFHash, 1,
364n/a PyDoc_STR("() -> (CFHashCode _rv)")},
365n/a {"CFCopyDescription", (PyCFunction)CFTypeRefObj_CFCopyDescription, 1,
366n/a PyDoc_STR("() -> (CFStringRef _rv)")},
367n/a {"CFPropertyListCreateXMLData", (PyCFunction)CFTypeRefObj_CFPropertyListCreateXMLData, 1,
368n/a PyDoc_STR("() -> (CFDataRef _rv)")},
369n/a {"CFPropertyListCreateDeepCopy", (PyCFunction)CFTypeRefObj_CFPropertyListCreateDeepCopy, 1,
370n/a PyDoc_STR("(CFOptionFlags mutabilityOption) -> (CFTypeRef _rv)")},
371n/a {"CFShow", (PyCFunction)CFTypeRefObj_CFShow, 1,
372n/a PyDoc_STR("() -> None")},
373n/a {"CFPropertyListCreateFromXMLData", (PyCFunction)CFTypeRefObj_CFPropertyListCreateFromXMLData, 1,
374n/a PyDoc_STR("(CFOptionFlags mutabilityOption) -> (CFTypeRefObj)")},
375n/a {"toPython", (PyCFunction)CFTypeRefObj_toPython, 1,
376n/a PyDoc_STR("() -> (python_object)")},
377n/a {NULL, NULL, 0}
378n/a};
379n/a
380n/a#define CFTypeRefObj_getsetlist NULL
381n/a
382n/a
383n/astatic int CFTypeRefObj_compare(CFTypeRefObject *self, CFTypeRefObject *other)
384n/a{
385n/a /* XXXX Or should we use CFEqual?? */
386n/a if ( self->ob_itself > other->ob_itself ) return 1;
387n/a if ( self->ob_itself < other->ob_itself ) return -1;
388n/a return 0;
389n/a}
390n/a
391n/astatic PyObject * CFTypeRefObj_repr(CFTypeRefObject *self)
392n/a{
393n/a char buf[100];
394n/a 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);
395n/a return PyString_FromString(buf);
396n/a}
397n/a
398n/astatic int CFTypeRefObj_hash(CFTypeRefObject *self)
399n/a{
400n/a /* XXXX Or should we use CFHash?? */
401n/a return (int)self->ob_itself;
402n/a}
403n/astatic int CFTypeRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
404n/a{
405n/a CFTypeRef itself;
406n/a char *kw[] = {"itself", 0};
407n/a
408n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
409n/a {
410n/a ((CFTypeRefObject *)_self)->ob_itself = itself;
411n/a return 0;
412n/a }
413n/a return -1;
414n/a}
415n/a
416n/a#define CFTypeRefObj_tp_alloc PyType_GenericAlloc
417n/a
418n/astatic PyObject *CFTypeRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
419n/a{
420n/a PyObject *self;
421n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
422n/a ((CFTypeRefObject *)self)->ob_itself = NULL;
423n/a ((CFTypeRefObject *)self)->ob_freeit = CFRelease;
424n/a return self;
425n/a}
426n/a
427n/a#define CFTypeRefObj_tp_free PyObject_Del
428n/a
429n/a
430n/aPyTypeObject CFTypeRef_Type = {
431n/a PyObject_HEAD_INIT(NULL)
432n/a 0, /*ob_size*/
433n/a "_CF.CFTypeRef", /*tp_name*/
434n/a sizeof(CFTypeRefObject), /*tp_basicsize*/
435n/a 0, /*tp_itemsize*/
436n/a /* methods */
437n/a (destructor) CFTypeRefObj_dealloc, /*tp_dealloc*/
438n/a 0, /*tp_print*/
439n/a (getattrfunc)0, /*tp_getattr*/
440n/a (setattrfunc)0, /*tp_setattr*/
441n/a (cmpfunc) CFTypeRefObj_compare, /*tp_compare*/
442n/a (reprfunc) CFTypeRefObj_repr, /*tp_repr*/
443n/a (PyNumberMethods *)0, /* tp_as_number */
444n/a (PySequenceMethods *)0, /* tp_as_sequence */
445n/a (PyMappingMethods *)0, /* tp_as_mapping */
446n/a (hashfunc) CFTypeRefObj_hash, /*tp_hash*/
447n/a 0, /*tp_call*/
448n/a 0, /*tp_str*/
449n/a PyObject_GenericGetAttr, /*tp_getattro*/
450n/a PyObject_GenericSetAttr, /*tp_setattro */
451n/a 0, /*tp_as_buffer*/
452n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
453n/a 0, /*tp_doc*/
454n/a 0, /*tp_traverse*/
455n/a 0, /*tp_clear*/
456n/a 0, /*tp_richcompare*/
457n/a 0, /*tp_weaklistoffset*/
458n/a 0, /*tp_iter*/
459n/a 0, /*tp_iternext*/
460n/a CFTypeRefObj_methods, /* tp_methods */
461n/a 0, /*tp_members*/
462n/a CFTypeRefObj_getsetlist, /*tp_getset*/
463n/a 0, /*tp_base*/
464n/a 0, /*tp_dict*/
465n/a 0, /*tp_descr_get*/
466n/a 0, /*tp_descr_set*/
467n/a 0, /*tp_dictoffset*/
468n/a CFTypeRefObj_tp_init, /* tp_init */
469n/a CFTypeRefObj_tp_alloc, /* tp_alloc */
470n/a CFTypeRefObj_tp_new, /* tp_new */
471n/a CFTypeRefObj_tp_free, /* tp_free */
472n/a};
473n/a
474n/a/* ------------------- End object type CFTypeRef -------------------- */
475n/a
476n/a
477n/a/* --------------------- Object type CFArrayRef --------------------- */
478n/a
479n/aPyTypeObject CFArrayRef_Type;
480n/a
481n/a#define CFArrayRefObj_Check(x) ((x)->ob_type == &CFArrayRef_Type || PyObject_TypeCheck((x), &CFArrayRef_Type))
482n/a
483n/atypedef struct CFArrayRefObject {
484n/a PyObject_HEAD
485n/a CFArrayRef ob_itself;
486n/a void (*ob_freeit)(CFTypeRef ptr);
487n/a} CFArrayRefObject;
488n/a
489n/aPyObject *CFArrayRefObj_New(CFArrayRef itself)
490n/a{
491n/a CFArrayRefObject *it;
492n/a if (itself == NULL)
493n/a {
494n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
495n/a return NULL;
496n/a }
497n/a it = PyObject_NEW(CFArrayRefObject, &CFArrayRef_Type);
498n/a if (it == NULL) return NULL;
499n/a /* XXXX Should we tp_init or tp_new our basetype? */
500n/a it->ob_itself = itself;
501n/a it->ob_freeit = CFRelease;
502n/a return (PyObject *)it;
503n/a}
504n/a
505n/aint CFArrayRefObj_Convert(PyObject *v, CFArrayRef *p_itself)
506n/a{
507n/a
508n/a if (v == Py_None) { *p_itself = NULL; return 1; }
509n/a /* Check for other CF objects here */
510n/a
511n/a if (!CFArrayRefObj_Check(v))
512n/a {
513n/a PyErr_SetString(PyExc_TypeError, "CFArrayRef required");
514n/a return 0;
515n/a }
516n/a *p_itself = ((CFArrayRefObject *)v)->ob_itself;
517n/a return 1;
518n/a}
519n/a
520n/astatic void CFArrayRefObj_dealloc(CFArrayRefObject *self)
521n/a{
522n/a if (self->ob_freeit && self->ob_itself)
523n/a {
524n/a self->ob_freeit((CFTypeRef)self->ob_itself);
525n/a self->ob_itself = NULL;
526n/a }
527n/a CFTypeRef_Type.tp_dealloc((PyObject *)self);
528n/a}
529n/a
530n/astatic PyObject *CFArrayRefObj_CFArrayCreateCopy(CFArrayRefObject *_self, PyObject *_args)
531n/a{
532n/a PyObject *_res = NULL;
533n/a CFArrayRef _rv;
534n/a if (!PyArg_ParseTuple(_args, ""))
535n/a return NULL;
536n/a _rv = CFArrayCreateCopy((CFAllocatorRef)NULL,
537n/a _self->ob_itself);
538n/a _res = Py_BuildValue("O&",
539n/a CFArrayRefObj_New, _rv);
540n/a return _res;
541n/a}
542n/a
543n/astatic PyObject *CFArrayRefObj_CFArrayGetCount(CFArrayRefObject *_self, PyObject *_args)
544n/a{
545n/a PyObject *_res = NULL;
546n/a CFIndex _rv;
547n/a#ifndef CFArrayGetCount
548n/a PyMac_PRECHECK(CFArrayGetCount);
549n/a#endif
550n/a if (!PyArg_ParseTuple(_args, ""))
551n/a return NULL;
552n/a _rv = CFArrayGetCount(_self->ob_itself);
553n/a _res = Py_BuildValue("l",
554n/a _rv);
555n/a return _res;
556n/a}
557n/a
558n/astatic PyObject *CFArrayRefObj_CFStringCreateByCombiningStrings(CFArrayRefObject *_self, PyObject *_args)
559n/a{
560n/a PyObject *_res = NULL;
561n/a CFStringRef _rv;
562n/a CFStringRef separatorString;
563n/a if (!PyArg_ParseTuple(_args, "O&",
564n/a CFStringRefObj_Convert, &separatorString))
565n/a return NULL;
566n/a _rv = CFStringCreateByCombiningStrings((CFAllocatorRef)NULL,
567n/a _self->ob_itself,
568n/a separatorString);
569n/a _res = Py_BuildValue("O&",
570n/a CFStringRefObj_New, _rv);
571n/a return _res;
572n/a}
573n/a
574n/astatic PyMethodDef CFArrayRefObj_methods[] = {
575n/a {"CFArrayCreateCopy", (PyCFunction)CFArrayRefObj_CFArrayCreateCopy, 1,
576n/a PyDoc_STR("() -> (CFArrayRef _rv)")},
577n/a {"CFArrayGetCount", (PyCFunction)CFArrayRefObj_CFArrayGetCount, 1,
578n/a PyDoc_STR("() -> (CFIndex _rv)")},
579n/a {"CFStringCreateByCombiningStrings", (PyCFunction)CFArrayRefObj_CFStringCreateByCombiningStrings, 1,
580n/a PyDoc_STR("(CFStringRef separatorString) -> (CFStringRef _rv)")},
581n/a {NULL, NULL, 0}
582n/a};
583n/a
584n/a#define CFArrayRefObj_getsetlist NULL
585n/a
586n/a
587n/astatic int CFArrayRefObj_compare(CFArrayRefObject *self, CFArrayRefObject *other)
588n/a{
589n/a /* XXXX Or should we use CFEqual?? */
590n/a if ( self->ob_itself > other->ob_itself ) return 1;
591n/a if ( self->ob_itself < other->ob_itself ) return -1;
592n/a return 0;
593n/a}
594n/a
595n/astatic PyObject * CFArrayRefObj_repr(CFArrayRefObject *self)
596n/a{
597n/a char buf[100];
598n/a sprintf(buf, "<CFArrayRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
599n/a return PyString_FromString(buf);
600n/a}
601n/a
602n/astatic int CFArrayRefObj_hash(CFArrayRefObject *self)
603n/a{
604n/a /* XXXX Or should we use CFHash?? */
605n/a return (int)self->ob_itself;
606n/a}
607n/astatic int CFArrayRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
608n/a{
609n/a CFArrayRef itself;
610n/a char *kw[] = {"itself", 0};
611n/a
612n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFArrayRefObj_Convert, &itself))
613n/a {
614n/a ((CFArrayRefObject *)_self)->ob_itself = itself;
615n/a return 0;
616n/a }
617n/a
618n/a /* Any CFTypeRef descendent is allowed as initializer too */
619n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
620n/a {
621n/a ((CFArrayRefObject *)_self)->ob_itself = itself;
622n/a return 0;
623n/a }
624n/a return -1;
625n/a}
626n/a
627n/a#define CFArrayRefObj_tp_alloc PyType_GenericAlloc
628n/a
629n/astatic PyObject *CFArrayRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
630n/a{
631n/a PyObject *self;
632n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
633n/a ((CFArrayRefObject *)self)->ob_itself = NULL;
634n/a ((CFArrayRefObject *)self)->ob_freeit = CFRelease;
635n/a return self;
636n/a}
637n/a
638n/a#define CFArrayRefObj_tp_free PyObject_Del
639n/a
640n/a
641n/aPyTypeObject CFArrayRef_Type = {
642n/a PyObject_HEAD_INIT(NULL)
643n/a 0, /*ob_size*/
644n/a "_CF.CFArrayRef", /*tp_name*/
645n/a sizeof(CFArrayRefObject), /*tp_basicsize*/
646n/a 0, /*tp_itemsize*/
647n/a /* methods */
648n/a (destructor) CFArrayRefObj_dealloc, /*tp_dealloc*/
649n/a 0, /*tp_print*/
650n/a (getattrfunc)0, /*tp_getattr*/
651n/a (setattrfunc)0, /*tp_setattr*/
652n/a (cmpfunc) CFArrayRefObj_compare, /*tp_compare*/
653n/a (reprfunc) CFArrayRefObj_repr, /*tp_repr*/
654n/a (PyNumberMethods *)0, /* tp_as_number */
655n/a (PySequenceMethods *)0, /* tp_as_sequence */
656n/a (PyMappingMethods *)0, /* tp_as_mapping */
657n/a (hashfunc) CFArrayRefObj_hash, /*tp_hash*/
658n/a 0, /*tp_call*/
659n/a 0, /*tp_str*/
660n/a PyObject_GenericGetAttr, /*tp_getattro*/
661n/a PyObject_GenericSetAttr, /*tp_setattro */
662n/a 0, /*tp_as_buffer*/
663n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
664n/a 0, /*tp_doc*/
665n/a 0, /*tp_traverse*/
666n/a 0, /*tp_clear*/
667n/a 0, /*tp_richcompare*/
668n/a 0, /*tp_weaklistoffset*/
669n/a 0, /*tp_iter*/
670n/a 0, /*tp_iternext*/
671n/a CFArrayRefObj_methods, /* tp_methods */
672n/a 0, /*tp_members*/
673n/a CFArrayRefObj_getsetlist, /*tp_getset*/
674n/a 0, /*tp_base*/
675n/a 0, /*tp_dict*/
676n/a 0, /*tp_descr_get*/
677n/a 0, /*tp_descr_set*/
678n/a 0, /*tp_dictoffset*/
679n/a CFArrayRefObj_tp_init, /* tp_init */
680n/a CFArrayRefObj_tp_alloc, /* tp_alloc */
681n/a CFArrayRefObj_tp_new, /* tp_new */
682n/a CFArrayRefObj_tp_free, /* tp_free */
683n/a};
684n/a
685n/a/* ------------------- End object type CFArrayRef ------------------- */
686n/a
687n/a
688n/a/* ----------------- Object type CFMutableArrayRef ------------------ */
689n/a
690n/aPyTypeObject CFMutableArrayRef_Type;
691n/a
692n/a#define CFMutableArrayRefObj_Check(x) ((x)->ob_type == &CFMutableArrayRef_Type || PyObject_TypeCheck((x), &CFMutableArrayRef_Type))
693n/a
694n/atypedef struct CFMutableArrayRefObject {
695n/a PyObject_HEAD
696n/a CFMutableArrayRef ob_itself;
697n/a void (*ob_freeit)(CFTypeRef ptr);
698n/a} CFMutableArrayRefObject;
699n/a
700n/aPyObject *CFMutableArrayRefObj_New(CFMutableArrayRef itself)
701n/a{
702n/a CFMutableArrayRefObject *it;
703n/a if (itself == NULL)
704n/a {
705n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
706n/a return NULL;
707n/a }
708n/a it = PyObject_NEW(CFMutableArrayRefObject, &CFMutableArrayRef_Type);
709n/a if (it == NULL) return NULL;
710n/a /* XXXX Should we tp_init or tp_new our basetype? */
711n/a it->ob_itself = itself;
712n/a it->ob_freeit = CFRelease;
713n/a return (PyObject *)it;
714n/a}
715n/a
716n/aint CFMutableArrayRefObj_Convert(PyObject *v, CFMutableArrayRef *p_itself)
717n/a{
718n/a
719n/a if (v == Py_None) { *p_itself = NULL; return 1; }
720n/a /* Check for other CF objects here */
721n/a
722n/a if (!CFMutableArrayRefObj_Check(v))
723n/a {
724n/a PyErr_SetString(PyExc_TypeError, "CFMutableArrayRef required");
725n/a return 0;
726n/a }
727n/a *p_itself = ((CFMutableArrayRefObject *)v)->ob_itself;
728n/a return 1;
729n/a}
730n/a
731n/astatic void CFMutableArrayRefObj_dealloc(CFMutableArrayRefObject *self)
732n/a{
733n/a if (self->ob_freeit && self->ob_itself)
734n/a {
735n/a self->ob_freeit((CFTypeRef)self->ob_itself);
736n/a self->ob_itself = NULL;
737n/a }
738n/a CFArrayRef_Type.tp_dealloc((PyObject *)self);
739n/a}
740n/a
741n/astatic PyObject *CFMutableArrayRefObj_CFArrayRemoveValueAtIndex(CFMutableArrayRefObject *_self, PyObject *_args)
742n/a{
743n/a PyObject *_res = NULL;
744n/a CFIndex idx;
745n/a#ifndef CFArrayRemoveValueAtIndex
746n/a PyMac_PRECHECK(CFArrayRemoveValueAtIndex);
747n/a#endif
748n/a if (!PyArg_ParseTuple(_args, "l",
749n/a &idx))
750n/a return NULL;
751n/a CFArrayRemoveValueAtIndex(_self->ob_itself,
752n/a idx);
753n/a Py_INCREF(Py_None);
754n/a _res = Py_None;
755n/a return _res;
756n/a}
757n/a
758n/astatic PyObject *CFMutableArrayRefObj_CFArrayRemoveAllValues(CFMutableArrayRefObject *_self, PyObject *_args)
759n/a{
760n/a PyObject *_res = NULL;
761n/a#ifndef CFArrayRemoveAllValues
762n/a PyMac_PRECHECK(CFArrayRemoveAllValues);
763n/a#endif
764n/a if (!PyArg_ParseTuple(_args, ""))
765n/a return NULL;
766n/a CFArrayRemoveAllValues(_self->ob_itself);
767n/a Py_INCREF(Py_None);
768n/a _res = Py_None;
769n/a return _res;
770n/a}
771n/a
772n/astatic PyObject *CFMutableArrayRefObj_CFArrayExchangeValuesAtIndices(CFMutableArrayRefObject *_self, PyObject *_args)
773n/a{
774n/a PyObject *_res = NULL;
775n/a CFIndex idx1;
776n/a CFIndex idx2;
777n/a#ifndef CFArrayExchangeValuesAtIndices
778n/a PyMac_PRECHECK(CFArrayExchangeValuesAtIndices);
779n/a#endif
780n/a if (!PyArg_ParseTuple(_args, "ll",
781n/a &idx1,
782n/a &idx2))
783n/a return NULL;
784n/a CFArrayExchangeValuesAtIndices(_self->ob_itself,
785n/a idx1,
786n/a idx2);
787n/a Py_INCREF(Py_None);
788n/a _res = Py_None;
789n/a return _res;
790n/a}
791n/a
792n/astatic PyObject *CFMutableArrayRefObj_CFArrayAppendArray(CFMutableArrayRefObject *_self, PyObject *_args)
793n/a{
794n/a PyObject *_res = NULL;
795n/a CFArrayRef otherArray;
796n/a CFRange otherRange;
797n/a#ifndef CFArrayAppendArray
798n/a PyMac_PRECHECK(CFArrayAppendArray);
799n/a#endif
800n/a if (!PyArg_ParseTuple(_args, "O&O&",
801n/a CFArrayRefObj_Convert, &otherArray,
802n/a CFRange_Convert, &otherRange))
803n/a return NULL;
804n/a CFArrayAppendArray(_self->ob_itself,
805n/a otherArray,
806n/a otherRange);
807n/a Py_INCREF(Py_None);
808n/a _res = Py_None;
809n/a return _res;
810n/a}
811n/a
812n/astatic PyMethodDef CFMutableArrayRefObj_methods[] = {
813n/a {"CFArrayRemoveValueAtIndex", (PyCFunction)CFMutableArrayRefObj_CFArrayRemoveValueAtIndex, 1,
814n/a PyDoc_STR("(CFIndex idx) -> None")},
815n/a {"CFArrayRemoveAllValues", (PyCFunction)CFMutableArrayRefObj_CFArrayRemoveAllValues, 1,
816n/a PyDoc_STR("() -> None")},
817n/a {"CFArrayExchangeValuesAtIndices", (PyCFunction)CFMutableArrayRefObj_CFArrayExchangeValuesAtIndices, 1,
818n/a PyDoc_STR("(CFIndex idx1, CFIndex idx2) -> None")},
819n/a {"CFArrayAppendArray", (PyCFunction)CFMutableArrayRefObj_CFArrayAppendArray, 1,
820n/a PyDoc_STR("(CFArrayRef otherArray, CFRange otherRange) -> None")},
821n/a {NULL, NULL, 0}
822n/a};
823n/a
824n/a#define CFMutableArrayRefObj_getsetlist NULL
825n/a
826n/a
827n/astatic int CFMutableArrayRefObj_compare(CFMutableArrayRefObject *self, CFMutableArrayRefObject *other)
828n/a{
829n/a /* XXXX Or should we use CFEqual?? */
830n/a if ( self->ob_itself > other->ob_itself ) return 1;
831n/a if ( self->ob_itself < other->ob_itself ) return -1;
832n/a return 0;
833n/a}
834n/a
835n/astatic PyObject * CFMutableArrayRefObj_repr(CFMutableArrayRefObject *self)
836n/a{
837n/a char buf[100];
838n/a sprintf(buf, "<CFMutableArrayRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
839n/a return PyString_FromString(buf);
840n/a}
841n/a
842n/astatic int CFMutableArrayRefObj_hash(CFMutableArrayRefObject *self)
843n/a{
844n/a /* XXXX Or should we use CFHash?? */
845n/a return (int)self->ob_itself;
846n/a}
847n/astatic int CFMutableArrayRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
848n/a{
849n/a CFMutableArrayRef itself;
850n/a char *kw[] = {"itself", 0};
851n/a
852n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFMutableArrayRefObj_Convert, &itself))
853n/a {
854n/a ((CFMutableArrayRefObject *)_self)->ob_itself = itself;
855n/a return 0;
856n/a }
857n/a
858n/a /* Any CFTypeRef descendent is allowed as initializer too */
859n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
860n/a {
861n/a ((CFMutableArrayRefObject *)_self)->ob_itself = itself;
862n/a return 0;
863n/a }
864n/a return -1;
865n/a}
866n/a
867n/a#define CFMutableArrayRefObj_tp_alloc PyType_GenericAlloc
868n/a
869n/astatic PyObject *CFMutableArrayRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
870n/a{
871n/a PyObject *self;
872n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
873n/a ((CFMutableArrayRefObject *)self)->ob_itself = NULL;
874n/a ((CFMutableArrayRefObject *)self)->ob_freeit = CFRelease;
875n/a return self;
876n/a}
877n/a
878n/a#define CFMutableArrayRefObj_tp_free PyObject_Del
879n/a
880n/a
881n/aPyTypeObject CFMutableArrayRef_Type = {
882n/a PyObject_HEAD_INIT(NULL)
883n/a 0, /*ob_size*/
884n/a "_CF.CFMutableArrayRef", /*tp_name*/
885n/a sizeof(CFMutableArrayRefObject), /*tp_basicsize*/
886n/a 0, /*tp_itemsize*/
887n/a /* methods */
888n/a (destructor) CFMutableArrayRefObj_dealloc, /*tp_dealloc*/
889n/a 0, /*tp_print*/
890n/a (getattrfunc)0, /*tp_getattr*/
891n/a (setattrfunc)0, /*tp_setattr*/
892n/a (cmpfunc) CFMutableArrayRefObj_compare, /*tp_compare*/
893n/a (reprfunc) CFMutableArrayRefObj_repr, /*tp_repr*/
894n/a (PyNumberMethods *)0, /* tp_as_number */
895n/a (PySequenceMethods *)0, /* tp_as_sequence */
896n/a (PyMappingMethods *)0, /* tp_as_mapping */
897n/a (hashfunc) CFMutableArrayRefObj_hash, /*tp_hash*/
898n/a 0, /*tp_call*/
899n/a 0, /*tp_str*/
900n/a PyObject_GenericGetAttr, /*tp_getattro*/
901n/a PyObject_GenericSetAttr, /*tp_setattro */
902n/a 0, /*tp_as_buffer*/
903n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
904n/a 0, /*tp_doc*/
905n/a 0, /*tp_traverse*/
906n/a 0, /*tp_clear*/
907n/a 0, /*tp_richcompare*/
908n/a 0, /*tp_weaklistoffset*/
909n/a 0, /*tp_iter*/
910n/a 0, /*tp_iternext*/
911n/a CFMutableArrayRefObj_methods, /* tp_methods */
912n/a 0, /*tp_members*/
913n/a CFMutableArrayRefObj_getsetlist, /*tp_getset*/
914n/a 0, /*tp_base*/
915n/a 0, /*tp_dict*/
916n/a 0, /*tp_descr_get*/
917n/a 0, /*tp_descr_set*/
918n/a 0, /*tp_dictoffset*/
919n/a CFMutableArrayRefObj_tp_init, /* tp_init */
920n/a CFMutableArrayRefObj_tp_alloc, /* tp_alloc */
921n/a CFMutableArrayRefObj_tp_new, /* tp_new */
922n/a CFMutableArrayRefObj_tp_free, /* tp_free */
923n/a};
924n/a
925n/a/* --------------- End object type CFMutableArrayRef ---------------- */
926n/a
927n/a
928n/a/* ------------------ Object type CFDictionaryRef ------------------- */
929n/a
930n/aPyTypeObject CFDictionaryRef_Type;
931n/a
932n/a#define CFDictionaryRefObj_Check(x) ((x)->ob_type == &CFDictionaryRef_Type || PyObject_TypeCheck((x), &CFDictionaryRef_Type))
933n/a
934n/atypedef struct CFDictionaryRefObject {
935n/a PyObject_HEAD
936n/a CFDictionaryRef ob_itself;
937n/a void (*ob_freeit)(CFTypeRef ptr);
938n/a} CFDictionaryRefObject;
939n/a
940n/aPyObject *CFDictionaryRefObj_New(CFDictionaryRef itself)
941n/a{
942n/a CFDictionaryRefObject *it;
943n/a if (itself == NULL)
944n/a {
945n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
946n/a return NULL;
947n/a }
948n/a it = PyObject_NEW(CFDictionaryRefObject, &CFDictionaryRef_Type);
949n/a if (it == NULL) return NULL;
950n/a /* XXXX Should we tp_init or tp_new our basetype? */
951n/a it->ob_itself = itself;
952n/a it->ob_freeit = CFRelease;
953n/a return (PyObject *)it;
954n/a}
955n/a
956n/aint CFDictionaryRefObj_Convert(PyObject *v, CFDictionaryRef *p_itself)
957n/a{
958n/a
959n/a if (v == Py_None) { *p_itself = NULL; return 1; }
960n/a /* Check for other CF objects here */
961n/a
962n/a if (!CFDictionaryRefObj_Check(v))
963n/a {
964n/a PyErr_SetString(PyExc_TypeError, "CFDictionaryRef required");
965n/a return 0;
966n/a }
967n/a *p_itself = ((CFDictionaryRefObject *)v)->ob_itself;
968n/a return 1;
969n/a}
970n/a
971n/astatic void CFDictionaryRefObj_dealloc(CFDictionaryRefObject *self)
972n/a{
973n/a if (self->ob_freeit && self->ob_itself)
974n/a {
975n/a self->ob_freeit((CFTypeRef)self->ob_itself);
976n/a self->ob_itself = NULL;
977n/a }
978n/a CFTypeRef_Type.tp_dealloc((PyObject *)self);
979n/a}
980n/a
981n/astatic PyObject *CFDictionaryRefObj_CFDictionaryCreateCopy(CFDictionaryRefObject *_self, PyObject *_args)
982n/a{
983n/a PyObject *_res = NULL;
984n/a CFDictionaryRef _rv;
985n/a if (!PyArg_ParseTuple(_args, ""))
986n/a return NULL;
987n/a _rv = CFDictionaryCreateCopy((CFAllocatorRef)NULL,
988n/a _self->ob_itself);
989n/a _res = Py_BuildValue("O&",
990n/a CFDictionaryRefObj_New, _rv);
991n/a return _res;
992n/a}
993n/a
994n/astatic PyObject *CFDictionaryRefObj_CFDictionaryGetCount(CFDictionaryRefObject *_self, PyObject *_args)
995n/a{
996n/a PyObject *_res = NULL;
997n/a CFIndex _rv;
998n/a#ifndef CFDictionaryGetCount
999n/a PyMac_PRECHECK(CFDictionaryGetCount);
1000n/a#endif
1001n/a if (!PyArg_ParseTuple(_args, ""))
1002n/a return NULL;
1003n/a _rv = CFDictionaryGetCount(_self->ob_itself);
1004n/a _res = Py_BuildValue("l",
1005n/a _rv);
1006n/a return _res;
1007n/a}
1008n/a
1009n/astatic PyMethodDef CFDictionaryRefObj_methods[] = {
1010n/a {"CFDictionaryCreateCopy", (PyCFunction)CFDictionaryRefObj_CFDictionaryCreateCopy, 1,
1011n/a PyDoc_STR("() -> (CFDictionaryRef _rv)")},
1012n/a {"CFDictionaryGetCount", (PyCFunction)CFDictionaryRefObj_CFDictionaryGetCount, 1,
1013n/a PyDoc_STR("() -> (CFIndex _rv)")},
1014n/a {NULL, NULL, 0}
1015n/a};
1016n/a
1017n/a#define CFDictionaryRefObj_getsetlist NULL
1018n/a
1019n/a
1020n/astatic int CFDictionaryRefObj_compare(CFDictionaryRefObject *self, CFDictionaryRefObject *other)
1021n/a{
1022n/a /* XXXX Or should we use CFEqual?? */
1023n/a if ( self->ob_itself > other->ob_itself ) return 1;
1024n/a if ( self->ob_itself < other->ob_itself ) return -1;
1025n/a return 0;
1026n/a}
1027n/a
1028n/astatic PyObject * CFDictionaryRefObj_repr(CFDictionaryRefObject *self)
1029n/a{
1030n/a char buf[100];
1031n/a sprintf(buf, "<CFDictionaryRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
1032n/a return PyString_FromString(buf);
1033n/a}
1034n/a
1035n/astatic int CFDictionaryRefObj_hash(CFDictionaryRefObject *self)
1036n/a{
1037n/a /* XXXX Or should we use CFHash?? */
1038n/a return (int)self->ob_itself;
1039n/a}
1040n/astatic int CFDictionaryRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
1041n/a{
1042n/a CFDictionaryRef itself;
1043n/a char *kw[] = {"itself", 0};
1044n/a
1045n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFDictionaryRefObj_Convert, &itself))
1046n/a {
1047n/a ((CFDictionaryRefObject *)_self)->ob_itself = itself;
1048n/a return 0;
1049n/a }
1050n/a
1051n/a /* Any CFTypeRef descendent is allowed as initializer too */
1052n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
1053n/a {
1054n/a ((CFDictionaryRefObject *)_self)->ob_itself = itself;
1055n/a return 0;
1056n/a }
1057n/a return -1;
1058n/a}
1059n/a
1060n/a#define CFDictionaryRefObj_tp_alloc PyType_GenericAlloc
1061n/a
1062n/astatic PyObject *CFDictionaryRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
1063n/a{
1064n/a PyObject *self;
1065n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
1066n/a ((CFDictionaryRefObject *)self)->ob_itself = NULL;
1067n/a ((CFDictionaryRefObject *)self)->ob_freeit = CFRelease;
1068n/a return self;
1069n/a}
1070n/a
1071n/a#define CFDictionaryRefObj_tp_free PyObject_Del
1072n/a
1073n/a
1074n/aPyTypeObject CFDictionaryRef_Type = {
1075n/a PyObject_HEAD_INIT(NULL)
1076n/a 0, /*ob_size*/
1077n/a "_CF.CFDictionaryRef", /*tp_name*/
1078n/a sizeof(CFDictionaryRefObject), /*tp_basicsize*/
1079n/a 0, /*tp_itemsize*/
1080n/a /* methods */
1081n/a (destructor) CFDictionaryRefObj_dealloc, /*tp_dealloc*/
1082n/a 0, /*tp_print*/
1083n/a (getattrfunc)0, /*tp_getattr*/
1084n/a (setattrfunc)0, /*tp_setattr*/
1085n/a (cmpfunc) CFDictionaryRefObj_compare, /*tp_compare*/
1086n/a (reprfunc) CFDictionaryRefObj_repr, /*tp_repr*/
1087n/a (PyNumberMethods *)0, /* tp_as_number */
1088n/a (PySequenceMethods *)0, /* tp_as_sequence */
1089n/a (PyMappingMethods *)0, /* tp_as_mapping */
1090n/a (hashfunc) CFDictionaryRefObj_hash, /*tp_hash*/
1091n/a 0, /*tp_call*/
1092n/a 0, /*tp_str*/
1093n/a PyObject_GenericGetAttr, /*tp_getattro*/
1094n/a PyObject_GenericSetAttr, /*tp_setattro */
1095n/a 0, /*tp_as_buffer*/
1096n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1097n/a 0, /*tp_doc*/
1098n/a 0, /*tp_traverse*/
1099n/a 0, /*tp_clear*/
1100n/a 0, /*tp_richcompare*/
1101n/a 0, /*tp_weaklistoffset*/
1102n/a 0, /*tp_iter*/
1103n/a 0, /*tp_iternext*/
1104n/a CFDictionaryRefObj_methods, /* tp_methods */
1105n/a 0, /*tp_members*/
1106n/a CFDictionaryRefObj_getsetlist, /*tp_getset*/
1107n/a 0, /*tp_base*/
1108n/a 0, /*tp_dict*/
1109n/a 0, /*tp_descr_get*/
1110n/a 0, /*tp_descr_set*/
1111n/a 0, /*tp_dictoffset*/
1112n/a CFDictionaryRefObj_tp_init, /* tp_init */
1113n/a CFDictionaryRefObj_tp_alloc, /* tp_alloc */
1114n/a CFDictionaryRefObj_tp_new, /* tp_new */
1115n/a CFDictionaryRefObj_tp_free, /* tp_free */
1116n/a};
1117n/a
1118n/a/* ---------------- End object type CFDictionaryRef ----------------- */
1119n/a
1120n/a
1121n/a/* --------------- Object type CFMutableDictionaryRef --------------- */
1122n/a
1123n/aPyTypeObject CFMutableDictionaryRef_Type;
1124n/a
1125n/a#define CFMutableDictionaryRefObj_Check(x) ((x)->ob_type == &CFMutableDictionaryRef_Type || PyObject_TypeCheck((x), &CFMutableDictionaryRef_Type))
1126n/a
1127n/atypedef struct CFMutableDictionaryRefObject {
1128n/a PyObject_HEAD
1129n/a CFMutableDictionaryRef ob_itself;
1130n/a void (*ob_freeit)(CFTypeRef ptr);
1131n/a} CFMutableDictionaryRefObject;
1132n/a
1133n/aPyObject *CFMutableDictionaryRefObj_New(CFMutableDictionaryRef itself)
1134n/a{
1135n/a CFMutableDictionaryRefObject *it;
1136n/a if (itself == NULL)
1137n/a {
1138n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
1139n/a return NULL;
1140n/a }
1141n/a it = PyObject_NEW(CFMutableDictionaryRefObject, &CFMutableDictionaryRef_Type);
1142n/a if (it == NULL) return NULL;
1143n/a /* XXXX Should we tp_init or tp_new our basetype? */
1144n/a it->ob_itself = itself;
1145n/a it->ob_freeit = CFRelease;
1146n/a return (PyObject *)it;
1147n/a}
1148n/a
1149n/aint CFMutableDictionaryRefObj_Convert(PyObject *v, CFMutableDictionaryRef *p_itself)
1150n/a{
1151n/a
1152n/a if (v == Py_None) { *p_itself = NULL; return 1; }
1153n/a /* Check for other CF objects here */
1154n/a
1155n/a if (!CFMutableDictionaryRefObj_Check(v))
1156n/a {
1157n/a PyErr_SetString(PyExc_TypeError, "CFMutableDictionaryRef required");
1158n/a return 0;
1159n/a }
1160n/a *p_itself = ((CFMutableDictionaryRefObject *)v)->ob_itself;
1161n/a return 1;
1162n/a}
1163n/a
1164n/astatic void CFMutableDictionaryRefObj_dealloc(CFMutableDictionaryRefObject *self)
1165n/a{
1166n/a if (self->ob_freeit && self->ob_itself)
1167n/a {
1168n/a self->ob_freeit((CFTypeRef)self->ob_itself);
1169n/a self->ob_itself = NULL;
1170n/a }
1171n/a CFDictionaryRef_Type.tp_dealloc((PyObject *)self);
1172n/a}
1173n/a
1174n/astatic PyObject *CFMutableDictionaryRefObj_CFDictionaryRemoveAllValues(CFMutableDictionaryRefObject *_self, PyObject *_args)
1175n/a{
1176n/a PyObject *_res = NULL;
1177n/a#ifndef CFDictionaryRemoveAllValues
1178n/a PyMac_PRECHECK(CFDictionaryRemoveAllValues);
1179n/a#endif
1180n/a if (!PyArg_ParseTuple(_args, ""))
1181n/a return NULL;
1182n/a CFDictionaryRemoveAllValues(_self->ob_itself);
1183n/a Py_INCREF(Py_None);
1184n/a _res = Py_None;
1185n/a return _res;
1186n/a}
1187n/a
1188n/astatic PyMethodDef CFMutableDictionaryRefObj_methods[] = {
1189n/a {"CFDictionaryRemoveAllValues", (PyCFunction)CFMutableDictionaryRefObj_CFDictionaryRemoveAllValues, 1,
1190n/a PyDoc_STR("() -> None")},
1191n/a {NULL, NULL, 0}
1192n/a};
1193n/a
1194n/a#define CFMutableDictionaryRefObj_getsetlist NULL
1195n/a
1196n/a
1197n/astatic int CFMutableDictionaryRefObj_compare(CFMutableDictionaryRefObject *self, CFMutableDictionaryRefObject *other)
1198n/a{
1199n/a /* XXXX Or should we use CFEqual?? */
1200n/a if ( self->ob_itself > other->ob_itself ) return 1;
1201n/a if ( self->ob_itself < other->ob_itself ) return -1;
1202n/a return 0;
1203n/a}
1204n/a
1205n/astatic PyObject * CFMutableDictionaryRefObj_repr(CFMutableDictionaryRefObject *self)
1206n/a{
1207n/a char buf[100];
1208n/a sprintf(buf, "<CFMutableDictionaryRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
1209n/a return PyString_FromString(buf);
1210n/a}
1211n/a
1212n/astatic int CFMutableDictionaryRefObj_hash(CFMutableDictionaryRefObject *self)
1213n/a{
1214n/a /* XXXX Or should we use CFHash?? */
1215n/a return (int)self->ob_itself;
1216n/a}
1217n/astatic int CFMutableDictionaryRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
1218n/a{
1219n/a CFMutableDictionaryRef itself;
1220n/a char *kw[] = {"itself", 0};
1221n/a
1222n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFMutableDictionaryRefObj_Convert, &itself))
1223n/a {
1224n/a ((CFMutableDictionaryRefObject *)_self)->ob_itself = itself;
1225n/a return 0;
1226n/a }
1227n/a
1228n/a /* Any CFTypeRef descendent is allowed as initializer too */
1229n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
1230n/a {
1231n/a ((CFMutableDictionaryRefObject *)_self)->ob_itself = itself;
1232n/a return 0;
1233n/a }
1234n/a return -1;
1235n/a}
1236n/a
1237n/a#define CFMutableDictionaryRefObj_tp_alloc PyType_GenericAlloc
1238n/a
1239n/astatic PyObject *CFMutableDictionaryRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
1240n/a{
1241n/a PyObject *self;
1242n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
1243n/a ((CFMutableDictionaryRefObject *)self)->ob_itself = NULL;
1244n/a ((CFMutableDictionaryRefObject *)self)->ob_freeit = CFRelease;
1245n/a return self;
1246n/a}
1247n/a
1248n/a#define CFMutableDictionaryRefObj_tp_free PyObject_Del
1249n/a
1250n/a
1251n/aPyTypeObject CFMutableDictionaryRef_Type = {
1252n/a PyObject_HEAD_INIT(NULL)
1253n/a 0, /*ob_size*/
1254n/a "_CF.CFMutableDictionaryRef", /*tp_name*/
1255n/a sizeof(CFMutableDictionaryRefObject), /*tp_basicsize*/
1256n/a 0, /*tp_itemsize*/
1257n/a /* methods */
1258n/a (destructor) CFMutableDictionaryRefObj_dealloc, /*tp_dealloc*/
1259n/a 0, /*tp_print*/
1260n/a (getattrfunc)0, /*tp_getattr*/
1261n/a (setattrfunc)0, /*tp_setattr*/
1262n/a (cmpfunc) CFMutableDictionaryRefObj_compare, /*tp_compare*/
1263n/a (reprfunc) CFMutableDictionaryRefObj_repr, /*tp_repr*/
1264n/a (PyNumberMethods *)0, /* tp_as_number */
1265n/a (PySequenceMethods *)0, /* tp_as_sequence */
1266n/a (PyMappingMethods *)0, /* tp_as_mapping */
1267n/a (hashfunc) CFMutableDictionaryRefObj_hash, /*tp_hash*/
1268n/a 0, /*tp_call*/
1269n/a 0, /*tp_str*/
1270n/a PyObject_GenericGetAttr, /*tp_getattro*/
1271n/a PyObject_GenericSetAttr, /*tp_setattro */
1272n/a 0, /*tp_as_buffer*/
1273n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1274n/a 0, /*tp_doc*/
1275n/a 0, /*tp_traverse*/
1276n/a 0, /*tp_clear*/
1277n/a 0, /*tp_richcompare*/
1278n/a 0, /*tp_weaklistoffset*/
1279n/a 0, /*tp_iter*/
1280n/a 0, /*tp_iternext*/
1281n/a CFMutableDictionaryRefObj_methods, /* tp_methods */
1282n/a 0, /*tp_members*/
1283n/a CFMutableDictionaryRefObj_getsetlist, /*tp_getset*/
1284n/a 0, /*tp_base*/
1285n/a 0, /*tp_dict*/
1286n/a 0, /*tp_descr_get*/
1287n/a 0, /*tp_descr_set*/
1288n/a 0, /*tp_dictoffset*/
1289n/a CFMutableDictionaryRefObj_tp_init, /* tp_init */
1290n/a CFMutableDictionaryRefObj_tp_alloc, /* tp_alloc */
1291n/a CFMutableDictionaryRefObj_tp_new, /* tp_new */
1292n/a CFMutableDictionaryRefObj_tp_free, /* tp_free */
1293n/a};
1294n/a
1295n/a/* ------------- End object type CFMutableDictionaryRef ------------- */
1296n/a
1297n/a
1298n/a/* --------------------- Object type CFDataRef ---------------------- */
1299n/a
1300n/aPyTypeObject CFDataRef_Type;
1301n/a
1302n/a#define CFDataRefObj_Check(x) ((x)->ob_type == &CFDataRef_Type || PyObject_TypeCheck((x), &CFDataRef_Type))
1303n/a
1304n/atypedef struct CFDataRefObject {
1305n/a PyObject_HEAD
1306n/a CFDataRef ob_itself;
1307n/a void (*ob_freeit)(CFTypeRef ptr);
1308n/a} CFDataRefObject;
1309n/a
1310n/aPyObject *CFDataRefObj_New(CFDataRef itself)
1311n/a{
1312n/a CFDataRefObject *it;
1313n/a if (itself == NULL)
1314n/a {
1315n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
1316n/a return NULL;
1317n/a }
1318n/a it = PyObject_NEW(CFDataRefObject, &CFDataRef_Type);
1319n/a if (it == NULL) return NULL;
1320n/a /* XXXX Should we tp_init or tp_new our basetype? */
1321n/a it->ob_itself = itself;
1322n/a it->ob_freeit = CFRelease;
1323n/a return (PyObject *)it;
1324n/a}
1325n/a
1326n/aint CFDataRefObj_Convert(PyObject *v, CFDataRef *p_itself)
1327n/a{
1328n/a
1329n/a if (v == Py_None) { *p_itself = NULL; return 1; }
1330n/a if (PyString_Check(v)) {
1331n/a char *cStr;
1332n/a Py_ssize_t cLen;
1333n/a if( PyString_AsStringAndSize(v, &cStr, &cLen) < 0 ) return 0;
1334n/a *p_itself = CFDataCreate((CFAllocatorRef)NULL, (unsigned char *)cStr, cLen);
1335n/a return 1;
1336n/a }
1337n/a
1338n/a if (!CFDataRefObj_Check(v))
1339n/a {
1340n/a PyErr_SetString(PyExc_TypeError, "CFDataRef required");
1341n/a return 0;
1342n/a }
1343n/a *p_itself = ((CFDataRefObject *)v)->ob_itself;
1344n/a return 1;
1345n/a}
1346n/a
1347n/astatic void CFDataRefObj_dealloc(CFDataRefObject *self)
1348n/a{
1349n/a if (self->ob_freeit && self->ob_itself)
1350n/a {
1351n/a self->ob_freeit((CFTypeRef)self->ob_itself);
1352n/a self->ob_itself = NULL;
1353n/a }
1354n/a CFTypeRef_Type.tp_dealloc((PyObject *)self);
1355n/a}
1356n/a
1357n/astatic PyObject *CFDataRefObj_CFDataCreateCopy(CFDataRefObject *_self, PyObject *_args)
1358n/a{
1359n/a PyObject *_res = NULL;
1360n/a CFDataRef _rv;
1361n/a if (!PyArg_ParseTuple(_args, ""))
1362n/a return NULL;
1363n/a _rv = CFDataCreateCopy((CFAllocatorRef)NULL,
1364n/a _self->ob_itself);
1365n/a _res = Py_BuildValue("O&",
1366n/a CFDataRefObj_New, _rv);
1367n/a return _res;
1368n/a}
1369n/a
1370n/astatic PyObject *CFDataRefObj_CFDataGetLength(CFDataRefObject *_self, PyObject *_args)
1371n/a{
1372n/a PyObject *_res = NULL;
1373n/a CFIndex _rv;
1374n/a#ifndef CFDataGetLength
1375n/a PyMac_PRECHECK(CFDataGetLength);
1376n/a#endif
1377n/a if (!PyArg_ParseTuple(_args, ""))
1378n/a return NULL;
1379n/a _rv = CFDataGetLength(_self->ob_itself);
1380n/a _res = Py_BuildValue("l",
1381n/a _rv);
1382n/a return _res;
1383n/a}
1384n/a
1385n/astatic PyObject *CFDataRefObj_CFStringCreateFromExternalRepresentation(CFDataRefObject *_self, PyObject *_args)
1386n/a{
1387n/a PyObject *_res = NULL;
1388n/a CFStringRef _rv;
1389n/a CFStringEncoding encoding;
1390n/a if (!PyArg_ParseTuple(_args, "l",
1391n/a &encoding))
1392n/a return NULL;
1393n/a _rv = CFStringCreateFromExternalRepresentation((CFAllocatorRef)NULL,
1394n/a _self->ob_itself,
1395n/a encoding);
1396n/a _res = Py_BuildValue("O&",
1397n/a CFStringRefObj_New, _rv);
1398n/a return _res;
1399n/a}
1400n/a
1401n/astatic PyObject *CFDataRefObj_CFDataGetData(CFDataRefObject *_self, PyObject *_args)
1402n/a{
1403n/a PyObject *_res = NULL;
1404n/a
1405n/a int size = CFDataGetLength(_self->ob_itself);
1406n/a char *data = (char *)CFDataGetBytePtr(_self->ob_itself);
1407n/a
1408n/a _res = (PyObject *)PyString_FromStringAndSize(data, size);
1409n/a return _res;
1410n/a
1411n/a}
1412n/a
1413n/astatic PyMethodDef CFDataRefObj_methods[] = {
1414n/a {"CFDataCreateCopy", (PyCFunction)CFDataRefObj_CFDataCreateCopy, 1,
1415n/a PyDoc_STR("() -> (CFDataRef _rv)")},
1416n/a {"CFDataGetLength", (PyCFunction)CFDataRefObj_CFDataGetLength, 1,
1417n/a PyDoc_STR("() -> (CFIndex _rv)")},
1418n/a {"CFStringCreateFromExternalRepresentation", (PyCFunction)CFDataRefObj_CFStringCreateFromExternalRepresentation, 1,
1419n/a PyDoc_STR("(CFStringEncoding encoding) -> (CFStringRef _rv)")},
1420n/a {"CFDataGetData", (PyCFunction)CFDataRefObj_CFDataGetData, 1,
1421n/a PyDoc_STR("() -> (string _rv)")},
1422n/a {NULL, NULL, 0}
1423n/a};
1424n/a
1425n/a#define CFDataRefObj_getsetlist NULL
1426n/a
1427n/a
1428n/astatic int CFDataRefObj_compare(CFDataRefObject *self, CFDataRefObject *other)
1429n/a{
1430n/a /* XXXX Or should we use CFEqual?? */
1431n/a if ( self->ob_itself > other->ob_itself ) return 1;
1432n/a if ( self->ob_itself < other->ob_itself ) return -1;
1433n/a return 0;
1434n/a}
1435n/a
1436n/astatic PyObject * CFDataRefObj_repr(CFDataRefObject *self)
1437n/a{
1438n/a char buf[100];
1439n/a sprintf(buf, "<CFDataRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
1440n/a return PyString_FromString(buf);
1441n/a}
1442n/a
1443n/astatic int CFDataRefObj_hash(CFDataRefObject *self)
1444n/a{
1445n/a /* XXXX Or should we use CFHash?? */
1446n/a return (int)self->ob_itself;
1447n/a}
1448n/astatic int CFDataRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
1449n/a{
1450n/a CFDataRef itself;
1451n/a char *kw[] = {"itself", 0};
1452n/a
1453n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFDataRefObj_Convert, &itself))
1454n/a {
1455n/a ((CFDataRefObject *)_self)->ob_itself = itself;
1456n/a return 0;
1457n/a }
1458n/a
1459n/a /* Any CFTypeRef descendent is allowed as initializer too */
1460n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
1461n/a {
1462n/a ((CFDataRefObject *)_self)->ob_itself = itself;
1463n/a return 0;
1464n/a }
1465n/a return -1;
1466n/a}
1467n/a
1468n/a#define CFDataRefObj_tp_alloc PyType_GenericAlloc
1469n/a
1470n/astatic PyObject *CFDataRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
1471n/a{
1472n/a PyObject *self;
1473n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
1474n/a ((CFDataRefObject *)self)->ob_itself = NULL;
1475n/a ((CFDataRefObject *)self)->ob_freeit = CFRelease;
1476n/a return self;
1477n/a}
1478n/a
1479n/a#define CFDataRefObj_tp_free PyObject_Del
1480n/a
1481n/a
1482n/aPyTypeObject CFDataRef_Type = {
1483n/a PyObject_HEAD_INIT(NULL)
1484n/a 0, /*ob_size*/
1485n/a "_CF.CFDataRef", /*tp_name*/
1486n/a sizeof(CFDataRefObject), /*tp_basicsize*/
1487n/a 0, /*tp_itemsize*/
1488n/a /* methods */
1489n/a (destructor) CFDataRefObj_dealloc, /*tp_dealloc*/
1490n/a 0, /*tp_print*/
1491n/a (getattrfunc)0, /*tp_getattr*/
1492n/a (setattrfunc)0, /*tp_setattr*/
1493n/a (cmpfunc) CFDataRefObj_compare, /*tp_compare*/
1494n/a (reprfunc) CFDataRefObj_repr, /*tp_repr*/
1495n/a (PyNumberMethods *)0, /* tp_as_number */
1496n/a (PySequenceMethods *)0, /* tp_as_sequence */
1497n/a (PyMappingMethods *)0, /* tp_as_mapping */
1498n/a (hashfunc) CFDataRefObj_hash, /*tp_hash*/
1499n/a 0, /*tp_call*/
1500n/a 0, /*tp_str*/
1501n/a PyObject_GenericGetAttr, /*tp_getattro*/
1502n/a PyObject_GenericSetAttr, /*tp_setattro */
1503n/a 0, /*tp_as_buffer*/
1504n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1505n/a 0, /*tp_doc*/
1506n/a 0, /*tp_traverse*/
1507n/a 0, /*tp_clear*/
1508n/a 0, /*tp_richcompare*/
1509n/a 0, /*tp_weaklistoffset*/
1510n/a 0, /*tp_iter*/
1511n/a 0, /*tp_iternext*/
1512n/a CFDataRefObj_methods, /* tp_methods */
1513n/a 0, /*tp_members*/
1514n/a CFDataRefObj_getsetlist, /*tp_getset*/
1515n/a 0, /*tp_base*/
1516n/a 0, /*tp_dict*/
1517n/a 0, /*tp_descr_get*/
1518n/a 0, /*tp_descr_set*/
1519n/a 0, /*tp_dictoffset*/
1520n/a CFDataRefObj_tp_init, /* tp_init */
1521n/a CFDataRefObj_tp_alloc, /* tp_alloc */
1522n/a CFDataRefObj_tp_new, /* tp_new */
1523n/a CFDataRefObj_tp_free, /* tp_free */
1524n/a};
1525n/a
1526n/a/* ------------------- End object type CFDataRef -------------------- */
1527n/a
1528n/a
1529n/a/* ------------------ Object type CFMutableDataRef ------------------ */
1530n/a
1531n/aPyTypeObject CFMutableDataRef_Type;
1532n/a
1533n/a#define CFMutableDataRefObj_Check(x) ((x)->ob_type == &CFMutableDataRef_Type || PyObject_TypeCheck((x), &CFMutableDataRef_Type))
1534n/a
1535n/atypedef struct CFMutableDataRefObject {
1536n/a PyObject_HEAD
1537n/a CFMutableDataRef ob_itself;
1538n/a void (*ob_freeit)(CFTypeRef ptr);
1539n/a} CFMutableDataRefObject;
1540n/a
1541n/aPyObject *CFMutableDataRefObj_New(CFMutableDataRef itself)
1542n/a{
1543n/a CFMutableDataRefObject *it;
1544n/a if (itself == NULL)
1545n/a {
1546n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
1547n/a return NULL;
1548n/a }
1549n/a it = PyObject_NEW(CFMutableDataRefObject, &CFMutableDataRef_Type);
1550n/a if (it == NULL) return NULL;
1551n/a /* XXXX Should we tp_init or tp_new our basetype? */
1552n/a it->ob_itself = itself;
1553n/a it->ob_freeit = CFRelease;
1554n/a return (PyObject *)it;
1555n/a}
1556n/a
1557n/aint CFMutableDataRefObj_Convert(PyObject *v, CFMutableDataRef *p_itself)
1558n/a{
1559n/a
1560n/a if (v == Py_None) { *p_itself = NULL; return 1; }
1561n/a /* Check for other CF objects here */
1562n/a
1563n/a if (!CFMutableDataRefObj_Check(v))
1564n/a {
1565n/a PyErr_SetString(PyExc_TypeError, "CFMutableDataRef required");
1566n/a return 0;
1567n/a }
1568n/a *p_itself = ((CFMutableDataRefObject *)v)->ob_itself;
1569n/a return 1;
1570n/a}
1571n/a
1572n/astatic void CFMutableDataRefObj_dealloc(CFMutableDataRefObject *self)
1573n/a{
1574n/a if (self->ob_freeit && self->ob_itself)
1575n/a {
1576n/a self->ob_freeit((CFTypeRef)self->ob_itself);
1577n/a self->ob_itself = NULL;
1578n/a }
1579n/a CFDataRef_Type.tp_dealloc((PyObject *)self);
1580n/a}
1581n/a
1582n/astatic PyObject *CFMutableDataRefObj_CFDataSetLength(CFMutableDataRefObject *_self, PyObject *_args)
1583n/a{
1584n/a PyObject *_res = NULL;
1585n/a CFIndex length;
1586n/a#ifndef CFDataSetLength
1587n/a PyMac_PRECHECK(CFDataSetLength);
1588n/a#endif
1589n/a if (!PyArg_ParseTuple(_args, "l",
1590n/a &length))
1591n/a return NULL;
1592n/a CFDataSetLength(_self->ob_itself,
1593n/a length);
1594n/a Py_INCREF(Py_None);
1595n/a _res = Py_None;
1596n/a return _res;
1597n/a}
1598n/a
1599n/astatic PyObject *CFMutableDataRefObj_CFDataIncreaseLength(CFMutableDataRefObject *_self, PyObject *_args)
1600n/a{
1601n/a PyObject *_res = NULL;
1602n/a CFIndex extraLength;
1603n/a#ifndef CFDataIncreaseLength
1604n/a PyMac_PRECHECK(CFDataIncreaseLength);
1605n/a#endif
1606n/a if (!PyArg_ParseTuple(_args, "l",
1607n/a &extraLength))
1608n/a return NULL;
1609n/a CFDataIncreaseLength(_self->ob_itself,
1610n/a extraLength);
1611n/a Py_INCREF(Py_None);
1612n/a _res = Py_None;
1613n/a return _res;
1614n/a}
1615n/a
1616n/astatic PyObject *CFMutableDataRefObj_CFDataAppendBytes(CFMutableDataRefObject *_self, PyObject *_args)
1617n/a{
1618n/a PyObject *_res = NULL;
1619n/a unsigned char *bytes__in__;
1620n/a long bytes__len__;
1621n/a int bytes__in_len__;
1622n/a#ifndef CFDataAppendBytes
1623n/a PyMac_PRECHECK(CFDataAppendBytes);
1624n/a#endif
1625n/a if (!PyArg_ParseTuple(_args, "s#",
1626n/a &bytes__in__, &bytes__in_len__))
1627n/a return NULL;
1628n/a bytes__len__ = bytes__in_len__;
1629n/a CFDataAppendBytes(_self->ob_itself,
1630n/a bytes__in__, bytes__len__);
1631n/a Py_INCREF(Py_None);
1632n/a _res = Py_None;
1633n/a return _res;
1634n/a}
1635n/a
1636n/astatic PyObject *CFMutableDataRefObj_CFDataReplaceBytes(CFMutableDataRefObject *_self, PyObject *_args)
1637n/a{
1638n/a PyObject *_res = NULL;
1639n/a CFRange range;
1640n/a unsigned char *newBytes__in__;
1641n/a long newBytes__len__;
1642n/a int newBytes__in_len__;
1643n/a#ifndef CFDataReplaceBytes
1644n/a PyMac_PRECHECK(CFDataReplaceBytes);
1645n/a#endif
1646n/a if (!PyArg_ParseTuple(_args, "O&s#",
1647n/a CFRange_Convert, &range,
1648n/a &newBytes__in__, &newBytes__in_len__))
1649n/a return NULL;
1650n/a newBytes__len__ = newBytes__in_len__;
1651n/a CFDataReplaceBytes(_self->ob_itself,
1652n/a range,
1653n/a newBytes__in__, newBytes__len__);
1654n/a Py_INCREF(Py_None);
1655n/a _res = Py_None;
1656n/a return _res;
1657n/a}
1658n/a
1659n/astatic PyObject *CFMutableDataRefObj_CFDataDeleteBytes(CFMutableDataRefObject *_self, PyObject *_args)
1660n/a{
1661n/a PyObject *_res = NULL;
1662n/a CFRange range;
1663n/a#ifndef CFDataDeleteBytes
1664n/a PyMac_PRECHECK(CFDataDeleteBytes);
1665n/a#endif
1666n/a if (!PyArg_ParseTuple(_args, "O&",
1667n/a CFRange_Convert, &range))
1668n/a return NULL;
1669n/a CFDataDeleteBytes(_self->ob_itself,
1670n/a range);
1671n/a Py_INCREF(Py_None);
1672n/a _res = Py_None;
1673n/a return _res;
1674n/a}
1675n/a
1676n/astatic PyMethodDef CFMutableDataRefObj_methods[] = {
1677n/a {"CFDataSetLength", (PyCFunction)CFMutableDataRefObj_CFDataSetLength, 1,
1678n/a PyDoc_STR("(CFIndex length) -> None")},
1679n/a {"CFDataIncreaseLength", (PyCFunction)CFMutableDataRefObj_CFDataIncreaseLength, 1,
1680n/a PyDoc_STR("(CFIndex extraLength) -> None")},
1681n/a {"CFDataAppendBytes", (PyCFunction)CFMutableDataRefObj_CFDataAppendBytes, 1,
1682n/a PyDoc_STR("(Buffer bytes) -> None")},
1683n/a {"CFDataReplaceBytes", (PyCFunction)CFMutableDataRefObj_CFDataReplaceBytes, 1,
1684n/a PyDoc_STR("(CFRange range, Buffer newBytes) -> None")},
1685n/a {"CFDataDeleteBytes", (PyCFunction)CFMutableDataRefObj_CFDataDeleteBytes, 1,
1686n/a PyDoc_STR("(CFRange range) -> None")},
1687n/a {NULL, NULL, 0}
1688n/a};
1689n/a
1690n/a#define CFMutableDataRefObj_getsetlist NULL
1691n/a
1692n/a
1693n/astatic int CFMutableDataRefObj_compare(CFMutableDataRefObject *self, CFMutableDataRefObject *other)
1694n/a{
1695n/a /* XXXX Or should we use CFEqual?? */
1696n/a if ( self->ob_itself > other->ob_itself ) return 1;
1697n/a if ( self->ob_itself < other->ob_itself ) return -1;
1698n/a return 0;
1699n/a}
1700n/a
1701n/astatic PyObject * CFMutableDataRefObj_repr(CFMutableDataRefObject *self)
1702n/a{
1703n/a char buf[100];
1704n/a sprintf(buf, "<CFMutableDataRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
1705n/a return PyString_FromString(buf);
1706n/a}
1707n/a
1708n/astatic int CFMutableDataRefObj_hash(CFMutableDataRefObject *self)
1709n/a{
1710n/a /* XXXX Or should we use CFHash?? */
1711n/a return (int)self->ob_itself;
1712n/a}
1713n/astatic int CFMutableDataRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
1714n/a{
1715n/a CFMutableDataRef itself;
1716n/a char *kw[] = {"itself", 0};
1717n/a
1718n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFMutableDataRefObj_Convert, &itself))
1719n/a {
1720n/a ((CFMutableDataRefObject *)_self)->ob_itself = itself;
1721n/a return 0;
1722n/a }
1723n/a
1724n/a /* Any CFTypeRef descendent is allowed as initializer too */
1725n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
1726n/a {
1727n/a ((CFMutableDataRefObject *)_self)->ob_itself = itself;
1728n/a return 0;
1729n/a }
1730n/a return -1;
1731n/a}
1732n/a
1733n/a#define CFMutableDataRefObj_tp_alloc PyType_GenericAlloc
1734n/a
1735n/astatic PyObject *CFMutableDataRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
1736n/a{
1737n/a PyObject *self;
1738n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
1739n/a ((CFMutableDataRefObject *)self)->ob_itself = NULL;
1740n/a ((CFMutableDataRefObject *)self)->ob_freeit = CFRelease;
1741n/a return self;
1742n/a}
1743n/a
1744n/a#define CFMutableDataRefObj_tp_free PyObject_Del
1745n/a
1746n/a
1747n/aPyTypeObject CFMutableDataRef_Type = {
1748n/a PyObject_HEAD_INIT(NULL)
1749n/a 0, /*ob_size*/
1750n/a "_CF.CFMutableDataRef", /*tp_name*/
1751n/a sizeof(CFMutableDataRefObject), /*tp_basicsize*/
1752n/a 0, /*tp_itemsize*/
1753n/a /* methods */
1754n/a (destructor) CFMutableDataRefObj_dealloc, /*tp_dealloc*/
1755n/a 0, /*tp_print*/
1756n/a (getattrfunc)0, /*tp_getattr*/
1757n/a (setattrfunc)0, /*tp_setattr*/
1758n/a (cmpfunc) CFMutableDataRefObj_compare, /*tp_compare*/
1759n/a (reprfunc) CFMutableDataRefObj_repr, /*tp_repr*/
1760n/a (PyNumberMethods *)0, /* tp_as_number */
1761n/a (PySequenceMethods *)0, /* tp_as_sequence */
1762n/a (PyMappingMethods *)0, /* tp_as_mapping */
1763n/a (hashfunc) CFMutableDataRefObj_hash, /*tp_hash*/
1764n/a 0, /*tp_call*/
1765n/a 0, /*tp_str*/
1766n/a PyObject_GenericGetAttr, /*tp_getattro*/
1767n/a PyObject_GenericSetAttr, /*tp_setattro */
1768n/a 0, /*tp_as_buffer*/
1769n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1770n/a 0, /*tp_doc*/
1771n/a 0, /*tp_traverse*/
1772n/a 0, /*tp_clear*/
1773n/a 0, /*tp_richcompare*/
1774n/a 0, /*tp_weaklistoffset*/
1775n/a 0, /*tp_iter*/
1776n/a 0, /*tp_iternext*/
1777n/a CFMutableDataRefObj_methods, /* tp_methods */
1778n/a 0, /*tp_members*/
1779n/a CFMutableDataRefObj_getsetlist, /*tp_getset*/
1780n/a 0, /*tp_base*/
1781n/a 0, /*tp_dict*/
1782n/a 0, /*tp_descr_get*/
1783n/a 0, /*tp_descr_set*/
1784n/a 0, /*tp_dictoffset*/
1785n/a CFMutableDataRefObj_tp_init, /* tp_init */
1786n/a CFMutableDataRefObj_tp_alloc, /* tp_alloc */
1787n/a CFMutableDataRefObj_tp_new, /* tp_new */
1788n/a CFMutableDataRefObj_tp_free, /* tp_free */
1789n/a};
1790n/a
1791n/a/* ---------------- End object type CFMutableDataRef ---------------- */
1792n/a
1793n/a
1794n/a/* -------------------- Object type CFStringRef --------------------- */
1795n/a
1796n/aPyTypeObject CFStringRef_Type;
1797n/a
1798n/a#define CFStringRefObj_Check(x) ((x)->ob_type == &CFStringRef_Type || PyObject_TypeCheck((x), &CFStringRef_Type))
1799n/a
1800n/atypedef struct CFStringRefObject {
1801n/a PyObject_HEAD
1802n/a CFStringRef ob_itself;
1803n/a void (*ob_freeit)(CFTypeRef ptr);
1804n/a} CFStringRefObject;
1805n/a
1806n/aPyObject *CFStringRefObj_New(CFStringRef itself)
1807n/a{
1808n/a CFStringRefObject *it;
1809n/a if (itself == NULL)
1810n/a {
1811n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
1812n/a return NULL;
1813n/a }
1814n/a it = PyObject_NEW(CFStringRefObject, &CFStringRef_Type);
1815n/a if (it == NULL) return NULL;
1816n/a /* XXXX Should we tp_init or tp_new our basetype? */
1817n/a it->ob_itself = itself;
1818n/a it->ob_freeit = CFRelease;
1819n/a return (PyObject *)it;
1820n/a}
1821n/a
1822n/aint CFStringRefObj_Convert(PyObject *v, CFStringRef *p_itself)
1823n/a{
1824n/a
1825n/a if (v == Py_None) { *p_itself = NULL; return 1; }
1826n/a if (PyString_Check(v)) {
1827n/a char *cStr;
1828n/a if (!PyArg_Parse(v, "es", "ascii", &cStr))
1829n/a return 0;
1830n/a *p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII);
1831n/a PyMem_Free(cStr);
1832n/a return 1;
1833n/a }
1834n/a if (PyUnicode_Check(v)) {
1835n/a /* We use the CF types here, if Python was configured differently that will give an error */
1836n/a CFIndex size = PyUnicode_GetSize(v);
1837n/a UniChar *unichars = PyUnicode_AsUnicode(v);
1838n/a if (!unichars) return 0;
1839n/a *p_itself = CFStringCreateWithCharacters((CFAllocatorRef)NULL, unichars, size);
1840n/a return 1;
1841n/a }
1842n/a
1843n/a
1844n/a if (!CFStringRefObj_Check(v))
1845n/a {
1846n/a PyErr_SetString(PyExc_TypeError, "CFStringRef required");
1847n/a return 0;
1848n/a }
1849n/a *p_itself = ((CFStringRefObject *)v)->ob_itself;
1850n/a return 1;
1851n/a}
1852n/a
1853n/astatic void CFStringRefObj_dealloc(CFStringRefObject *self)
1854n/a{
1855n/a if (self->ob_freeit && self->ob_itself)
1856n/a {
1857n/a self->ob_freeit((CFTypeRef)self->ob_itself);
1858n/a self->ob_itself = NULL;
1859n/a }
1860n/a CFTypeRef_Type.tp_dealloc((PyObject *)self);
1861n/a}
1862n/a
1863n/astatic PyObject *CFStringRefObj_CFStringCreateWithSubstring(CFStringRefObject *_self, PyObject *_args)
1864n/a{
1865n/a PyObject *_res = NULL;
1866n/a CFStringRef _rv;
1867n/a CFRange range;
1868n/a if (!PyArg_ParseTuple(_args, "O&",
1869n/a CFRange_Convert, &range))
1870n/a return NULL;
1871n/a _rv = CFStringCreateWithSubstring((CFAllocatorRef)NULL,
1872n/a _self->ob_itself,
1873n/a range);
1874n/a _res = Py_BuildValue("O&",
1875n/a CFStringRefObj_New, _rv);
1876n/a return _res;
1877n/a}
1878n/a
1879n/astatic PyObject *CFStringRefObj_CFStringCreateCopy(CFStringRefObject *_self, PyObject *_args)
1880n/a{
1881n/a PyObject *_res = NULL;
1882n/a CFStringRef _rv;
1883n/a if (!PyArg_ParseTuple(_args, ""))
1884n/a return NULL;
1885n/a _rv = CFStringCreateCopy((CFAllocatorRef)NULL,
1886n/a _self->ob_itself);
1887n/a _res = Py_BuildValue("O&",
1888n/a CFStringRefObj_New, _rv);
1889n/a return _res;
1890n/a}
1891n/a
1892n/astatic PyObject *CFStringRefObj_CFStringGetLength(CFStringRefObject *_self, PyObject *_args)
1893n/a{
1894n/a PyObject *_res = NULL;
1895n/a CFIndex _rv;
1896n/a#ifndef CFStringGetLength
1897n/a PyMac_PRECHECK(CFStringGetLength);
1898n/a#endif
1899n/a if (!PyArg_ParseTuple(_args, ""))
1900n/a return NULL;
1901n/a _rv = CFStringGetLength(_self->ob_itself);
1902n/a _res = Py_BuildValue("l",
1903n/a _rv);
1904n/a return _res;
1905n/a}
1906n/a
1907n/astatic PyObject *CFStringRefObj_CFStringGetBytes(CFStringRefObject *_self, PyObject *_args)
1908n/a{
1909n/a PyObject *_res = NULL;
1910n/a CFIndex _rv;
1911n/a CFRange range;
1912n/a CFStringEncoding encoding;
1913n/a UInt8 lossByte;
1914n/a Boolean isExternalRepresentation;
1915n/a UInt8 buffer;
1916n/a CFIndex maxBufLen;
1917n/a CFIndex usedBufLen;
1918n/a#ifndef CFStringGetBytes
1919n/a PyMac_PRECHECK(CFStringGetBytes);
1920n/a#endif
1921n/a if (!PyArg_ParseTuple(_args, "O&lbll",
1922n/a CFRange_Convert, &range,
1923n/a &encoding,
1924n/a &lossByte,
1925n/a &isExternalRepresentation,
1926n/a &maxBufLen))
1927n/a return NULL;
1928n/a _rv = CFStringGetBytes(_self->ob_itself,
1929n/a range,
1930n/a encoding,
1931n/a lossByte,
1932n/a isExternalRepresentation,
1933n/a &buffer,
1934n/a maxBufLen,
1935n/a &usedBufLen);
1936n/a _res = Py_BuildValue("lbl",
1937n/a _rv,
1938n/a buffer,
1939n/a usedBufLen);
1940n/a return _res;
1941n/a}
1942n/a
1943n/astatic PyObject *CFStringRefObj_CFStringCreateExternalRepresentation(CFStringRefObject *_self, PyObject *_args)
1944n/a{
1945n/a PyObject *_res = NULL;
1946n/a CFDataRef _rv;
1947n/a CFStringEncoding encoding;
1948n/a UInt8 lossByte;
1949n/a if (!PyArg_ParseTuple(_args, "lb",
1950n/a &encoding,
1951n/a &lossByte))
1952n/a return NULL;
1953n/a _rv = CFStringCreateExternalRepresentation((CFAllocatorRef)NULL,
1954n/a _self->ob_itself,
1955n/a encoding,
1956n/a lossByte);
1957n/a _res = Py_BuildValue("O&",
1958n/a CFDataRefObj_New, _rv);
1959n/a return _res;
1960n/a}
1961n/a
1962n/astatic PyObject *CFStringRefObj_CFStringGetSmallestEncoding(CFStringRefObject *_self, PyObject *_args)
1963n/a{
1964n/a PyObject *_res = NULL;
1965n/a CFStringEncoding _rv;
1966n/a#ifndef CFStringGetSmallestEncoding
1967n/a PyMac_PRECHECK(CFStringGetSmallestEncoding);
1968n/a#endif
1969n/a if (!PyArg_ParseTuple(_args, ""))
1970n/a return NULL;
1971n/a _rv = CFStringGetSmallestEncoding(_self->ob_itself);
1972n/a _res = Py_BuildValue("l",
1973n/a _rv);
1974n/a return _res;
1975n/a}
1976n/a
1977n/astatic PyObject *CFStringRefObj_CFStringGetFastestEncoding(CFStringRefObject *_self, PyObject *_args)
1978n/a{
1979n/a PyObject *_res = NULL;
1980n/a CFStringEncoding _rv;
1981n/a#ifndef CFStringGetFastestEncoding
1982n/a PyMac_PRECHECK(CFStringGetFastestEncoding);
1983n/a#endif
1984n/a if (!PyArg_ParseTuple(_args, ""))
1985n/a return NULL;
1986n/a _rv = CFStringGetFastestEncoding(_self->ob_itself);
1987n/a _res = Py_BuildValue("l",
1988n/a _rv);
1989n/a return _res;
1990n/a}
1991n/a
1992n/astatic PyObject *CFStringRefObj_CFStringCompareWithOptions(CFStringRefObject *_self, PyObject *_args)
1993n/a{
1994n/a PyObject *_res = NULL;
1995n/a CFComparisonResult _rv;
1996n/a CFStringRef theString2;
1997n/a CFRange rangeToCompare;
1998n/a CFOptionFlags compareOptions;
1999n/a#ifndef CFStringCompareWithOptions
2000n/a PyMac_PRECHECK(CFStringCompareWithOptions);
2001n/a#endif
2002n/a if (!PyArg_ParseTuple(_args, "O&O&l",
2003n/a CFStringRefObj_Convert, &theString2,
2004n/a CFRange_Convert, &rangeToCompare,
2005n/a &compareOptions))
2006n/a return NULL;
2007n/a _rv = CFStringCompareWithOptions(_self->ob_itself,
2008n/a theString2,
2009n/a rangeToCompare,
2010n/a compareOptions);
2011n/a _res = Py_BuildValue("l",
2012n/a _rv);
2013n/a return _res;
2014n/a}
2015n/a
2016n/astatic PyObject *CFStringRefObj_CFStringCompare(CFStringRefObject *_self, PyObject *_args)
2017n/a{
2018n/a PyObject *_res = NULL;
2019n/a CFComparisonResult _rv;
2020n/a CFStringRef theString2;
2021n/a CFOptionFlags compareOptions;
2022n/a#ifndef CFStringCompare
2023n/a PyMac_PRECHECK(CFStringCompare);
2024n/a#endif
2025n/a if (!PyArg_ParseTuple(_args, "O&l",
2026n/a CFStringRefObj_Convert, &theString2,
2027n/a &compareOptions))
2028n/a return NULL;
2029n/a _rv = CFStringCompare(_self->ob_itself,
2030n/a theString2,
2031n/a compareOptions);
2032n/a _res = Py_BuildValue("l",
2033n/a _rv);
2034n/a return _res;
2035n/a}
2036n/a
2037n/astatic PyObject *CFStringRefObj_CFStringFindWithOptions(CFStringRefObject *_self, PyObject *_args)
2038n/a{
2039n/a PyObject *_res = NULL;
2040n/a Boolean _rv;
2041n/a CFStringRef stringToFind;
2042n/a CFRange rangeToSearch;
2043n/a CFOptionFlags searchOptions;
2044n/a CFRange result;
2045n/a#ifndef CFStringFindWithOptions
2046n/a PyMac_PRECHECK(CFStringFindWithOptions);
2047n/a#endif
2048n/a if (!PyArg_ParseTuple(_args, "O&O&l",
2049n/a CFStringRefObj_Convert, &stringToFind,
2050n/a CFRange_Convert, &rangeToSearch,
2051n/a &searchOptions))
2052n/a return NULL;
2053n/a _rv = CFStringFindWithOptions(_self->ob_itself,
2054n/a stringToFind,
2055n/a rangeToSearch,
2056n/a searchOptions,
2057n/a &result);
2058n/a _res = Py_BuildValue("lO&",
2059n/a _rv,
2060n/a CFRange_New, result);
2061n/a return _res;
2062n/a}
2063n/a
2064n/astatic PyObject *CFStringRefObj_CFStringCreateArrayWithFindResults(CFStringRefObject *_self, PyObject *_args)
2065n/a{
2066n/a PyObject *_res = NULL;
2067n/a CFArrayRef _rv;
2068n/a CFStringRef stringToFind;
2069n/a CFRange rangeToSearch;
2070n/a CFOptionFlags compareOptions;
2071n/a if (!PyArg_ParseTuple(_args, "O&O&l",
2072n/a CFStringRefObj_Convert, &stringToFind,
2073n/a CFRange_Convert, &rangeToSearch,
2074n/a &compareOptions))
2075n/a return NULL;
2076n/a _rv = CFStringCreateArrayWithFindResults((CFAllocatorRef)NULL,
2077n/a _self->ob_itself,
2078n/a stringToFind,
2079n/a rangeToSearch,
2080n/a compareOptions);
2081n/a _res = Py_BuildValue("O&",
2082n/a CFArrayRefObj_New, _rv);
2083n/a return _res;
2084n/a}
2085n/a
2086n/astatic PyObject *CFStringRefObj_CFStringFind(CFStringRefObject *_self, PyObject *_args)
2087n/a{
2088n/a PyObject *_res = NULL;
2089n/a CFRange _rv;
2090n/a CFStringRef stringToFind;
2091n/a CFOptionFlags compareOptions;
2092n/a#ifndef CFStringFind
2093n/a PyMac_PRECHECK(CFStringFind);
2094n/a#endif
2095n/a if (!PyArg_ParseTuple(_args, "O&l",
2096n/a CFStringRefObj_Convert, &stringToFind,
2097n/a &compareOptions))
2098n/a return NULL;
2099n/a _rv = CFStringFind(_self->ob_itself,
2100n/a stringToFind,
2101n/a compareOptions);
2102n/a _res = Py_BuildValue("O&",
2103n/a CFRange_New, _rv);
2104n/a return _res;
2105n/a}
2106n/a
2107n/astatic PyObject *CFStringRefObj_CFStringHasPrefix(CFStringRefObject *_self, PyObject *_args)
2108n/a{
2109n/a PyObject *_res = NULL;
2110n/a Boolean _rv;
2111n/a CFStringRef prefix;
2112n/a#ifndef CFStringHasPrefix
2113n/a PyMac_PRECHECK(CFStringHasPrefix);
2114n/a#endif
2115n/a if (!PyArg_ParseTuple(_args, "O&",
2116n/a CFStringRefObj_Convert, &prefix))
2117n/a return NULL;
2118n/a _rv = CFStringHasPrefix(_self->ob_itself,
2119n/a prefix);
2120n/a _res = Py_BuildValue("l",
2121n/a _rv);
2122n/a return _res;
2123n/a}
2124n/a
2125n/astatic PyObject *CFStringRefObj_CFStringHasSuffix(CFStringRefObject *_self, PyObject *_args)
2126n/a{
2127n/a PyObject *_res = NULL;
2128n/a Boolean _rv;
2129n/a CFStringRef suffix;
2130n/a#ifndef CFStringHasSuffix
2131n/a PyMac_PRECHECK(CFStringHasSuffix);
2132n/a#endif
2133n/a if (!PyArg_ParseTuple(_args, "O&",
2134n/a CFStringRefObj_Convert, &suffix))
2135n/a return NULL;
2136n/a _rv = CFStringHasSuffix(_self->ob_itself,
2137n/a suffix);
2138n/a _res = Py_BuildValue("l",
2139n/a _rv);
2140n/a return _res;
2141n/a}
2142n/a
2143n/astatic PyObject *CFStringRefObj_CFStringGetLineBounds(CFStringRefObject *_self, PyObject *_args)
2144n/a{
2145n/a PyObject *_res = NULL;
2146n/a CFRange range;
2147n/a CFIndex lineBeginIndex;
2148n/a CFIndex lineEndIndex;
2149n/a CFIndex contentsEndIndex;
2150n/a#ifndef CFStringGetLineBounds
2151n/a PyMac_PRECHECK(CFStringGetLineBounds);
2152n/a#endif
2153n/a if (!PyArg_ParseTuple(_args, "O&",
2154n/a CFRange_Convert, &range))
2155n/a return NULL;
2156n/a CFStringGetLineBounds(_self->ob_itself,
2157n/a range,
2158n/a &lineBeginIndex,
2159n/a &lineEndIndex,
2160n/a &contentsEndIndex);
2161n/a _res = Py_BuildValue("lll",
2162n/a lineBeginIndex,
2163n/a lineEndIndex,
2164n/a contentsEndIndex);
2165n/a return _res;
2166n/a}
2167n/a
2168n/astatic PyObject *CFStringRefObj_CFStringCreateArrayBySeparatingStrings(CFStringRefObject *_self, PyObject *_args)
2169n/a{
2170n/a PyObject *_res = NULL;
2171n/a CFArrayRef _rv;
2172n/a CFStringRef separatorString;
2173n/a if (!PyArg_ParseTuple(_args, "O&",
2174n/a CFStringRefObj_Convert, &separatorString))
2175n/a return NULL;
2176n/a _rv = CFStringCreateArrayBySeparatingStrings((CFAllocatorRef)NULL,
2177n/a _self->ob_itself,
2178n/a separatorString);
2179n/a _res = Py_BuildValue("O&",
2180n/a CFArrayRefObj_New, _rv);
2181n/a return _res;
2182n/a}
2183n/a
2184n/astatic PyObject *CFStringRefObj_CFStringGetIntValue(CFStringRefObject *_self, PyObject *_args)
2185n/a{
2186n/a PyObject *_res = NULL;
2187n/a SInt32 _rv;
2188n/a#ifndef CFStringGetIntValue
2189n/a PyMac_PRECHECK(CFStringGetIntValue);
2190n/a#endif
2191n/a if (!PyArg_ParseTuple(_args, ""))
2192n/a return NULL;
2193n/a _rv = CFStringGetIntValue(_self->ob_itself);
2194n/a _res = Py_BuildValue("l",
2195n/a _rv);
2196n/a return _res;
2197n/a}
2198n/a
2199n/astatic PyObject *CFStringRefObj_CFStringGetDoubleValue(CFStringRefObject *_self, PyObject *_args)
2200n/a{
2201n/a PyObject *_res = NULL;
2202n/a double _rv;
2203n/a#ifndef CFStringGetDoubleValue
2204n/a PyMac_PRECHECK(CFStringGetDoubleValue);
2205n/a#endif
2206n/a if (!PyArg_ParseTuple(_args, ""))
2207n/a return NULL;
2208n/a _rv = CFStringGetDoubleValue(_self->ob_itself);
2209n/a _res = Py_BuildValue("d",
2210n/a _rv);
2211n/a return _res;
2212n/a}
2213n/a
2214n/astatic PyObject *CFStringRefObj_CFStringConvertIANACharSetNameToEncoding(CFStringRefObject *_self, PyObject *_args)
2215n/a{
2216n/a PyObject *_res = NULL;
2217n/a CFStringEncoding _rv;
2218n/a#ifndef CFStringConvertIANACharSetNameToEncoding
2219n/a PyMac_PRECHECK(CFStringConvertIANACharSetNameToEncoding);
2220n/a#endif
2221n/a if (!PyArg_ParseTuple(_args, ""))
2222n/a return NULL;
2223n/a _rv = CFStringConvertIANACharSetNameToEncoding(_self->ob_itself);
2224n/a _res = Py_BuildValue("l",
2225n/a _rv);
2226n/a return _res;
2227n/a}
2228n/a
2229n/astatic PyObject *CFStringRefObj_CFShowStr(CFStringRefObject *_self, PyObject *_args)
2230n/a{
2231n/a PyObject *_res = NULL;
2232n/a#ifndef CFShowStr
2233n/a PyMac_PRECHECK(CFShowStr);
2234n/a#endif
2235n/a if (!PyArg_ParseTuple(_args, ""))
2236n/a return NULL;
2237n/a CFShowStr(_self->ob_itself);
2238n/a Py_INCREF(Py_None);
2239n/a _res = Py_None;
2240n/a return _res;
2241n/a}
2242n/a
2243n/astatic PyObject *CFStringRefObj_CFURLCreateWithString(CFStringRefObject *_self, PyObject *_args)
2244n/a{
2245n/a PyObject *_res = NULL;
2246n/a CFURLRef _rv;
2247n/a CFURLRef baseURL;
2248n/a if (!PyArg_ParseTuple(_args, "O&",
2249n/a OptionalCFURLRefObj_Convert, &baseURL))
2250n/a return NULL;
2251n/a _rv = CFURLCreateWithString((CFAllocatorRef)NULL,
2252n/a _self->ob_itself,
2253n/a baseURL);
2254n/a _res = Py_BuildValue("O&",
2255n/a CFURLRefObj_New, _rv);
2256n/a return _res;
2257n/a}
2258n/a
2259n/astatic PyObject *CFStringRefObj_CFURLCreateWithFileSystemPath(CFStringRefObject *_self, PyObject *_args)
2260n/a{
2261n/a PyObject *_res = NULL;
2262n/a CFURLRef _rv;
2263n/a CFURLPathStyle pathStyle;
2264n/a Boolean isDirectory;
2265n/a if (!PyArg_ParseTuple(_args, "ll",
2266n/a &pathStyle,
2267n/a &isDirectory))
2268n/a return NULL;
2269n/a _rv = CFURLCreateWithFileSystemPath((CFAllocatorRef)NULL,
2270n/a _self->ob_itself,
2271n/a pathStyle,
2272n/a isDirectory);
2273n/a _res = Py_BuildValue("O&",
2274n/a CFURLRefObj_New, _rv);
2275n/a return _res;
2276n/a}
2277n/a
2278n/astatic PyObject *CFStringRefObj_CFURLCreateWithFileSystemPathRelativeToBase(CFStringRefObject *_self, PyObject *_args)
2279n/a{
2280n/a PyObject *_res = NULL;
2281n/a CFURLRef _rv;
2282n/a CFURLPathStyle pathStyle;
2283n/a Boolean isDirectory;
2284n/a CFURLRef baseURL;
2285n/a if (!PyArg_ParseTuple(_args, "llO&",
2286n/a &pathStyle,
2287n/a &isDirectory,
2288n/a OptionalCFURLRefObj_Convert, &baseURL))
2289n/a return NULL;
2290n/a _rv = CFURLCreateWithFileSystemPathRelativeToBase((CFAllocatorRef)NULL,
2291n/a _self->ob_itself,
2292n/a pathStyle,
2293n/a isDirectory,
2294n/a baseURL);
2295n/a _res = Py_BuildValue("O&",
2296n/a CFURLRefObj_New, _rv);
2297n/a return _res;
2298n/a}
2299n/a
2300n/astatic PyObject *CFStringRefObj_CFURLCreateStringByReplacingPercentEscapes(CFStringRefObject *_self, PyObject *_args)
2301n/a{
2302n/a PyObject *_res = NULL;
2303n/a CFStringRef _rv;
2304n/a CFStringRef charactersToLeaveEscaped;
2305n/a if (!PyArg_ParseTuple(_args, "O&",
2306n/a CFStringRefObj_Convert, &charactersToLeaveEscaped))
2307n/a return NULL;
2308n/a _rv = CFURLCreateStringByReplacingPercentEscapes((CFAllocatorRef)NULL,
2309n/a _self->ob_itself,
2310n/a charactersToLeaveEscaped);
2311n/a _res = Py_BuildValue("O&",
2312n/a CFStringRefObj_New, _rv);
2313n/a return _res;
2314n/a}
2315n/a
2316n/astatic PyObject *CFStringRefObj_CFURLCreateStringByAddingPercentEscapes(CFStringRefObject *_self, PyObject *_args)
2317n/a{
2318n/a PyObject *_res = NULL;
2319n/a CFStringRef _rv;
2320n/a CFStringRef charactersToLeaveUnescaped;
2321n/a CFStringRef legalURLCharactersToBeEscaped;
2322n/a CFStringEncoding encoding;
2323n/a if (!PyArg_ParseTuple(_args, "O&O&l",
2324n/a CFStringRefObj_Convert, &charactersToLeaveUnescaped,
2325n/a CFStringRefObj_Convert, &legalURLCharactersToBeEscaped,
2326n/a &encoding))
2327n/a return NULL;
2328n/a _rv = CFURLCreateStringByAddingPercentEscapes((CFAllocatorRef)NULL,
2329n/a _self->ob_itself,
2330n/a charactersToLeaveUnescaped,
2331n/a legalURLCharactersToBeEscaped,
2332n/a encoding);
2333n/a _res = Py_BuildValue("O&",
2334n/a CFStringRefObj_New, _rv);
2335n/a return _res;
2336n/a}
2337n/a
2338n/astatic PyObject *CFStringRefObj_CFStringGetString(CFStringRefObject *_self, PyObject *_args)
2339n/a{
2340n/a PyObject *_res = NULL;
2341n/a
2342n/a int size = CFStringGetLength(_self->ob_itself)+1;
2343n/a char *data = malloc(size);
2344n/a
2345n/a if( data == NULL ) return PyErr_NoMemory();
2346n/a if ( CFStringGetCString(_self->ob_itself, data, size, 0) ) {
2347n/a _res = (PyObject *)PyString_FromString(data);
2348n/a } else {
2349n/a PyErr_SetString(PyExc_RuntimeError, "CFStringGetCString could not fit the string");
2350n/a _res = NULL;
2351n/a }
2352n/a free(data);
2353n/a return _res;
2354n/a
2355n/a}
2356n/a
2357n/astatic PyObject *CFStringRefObj_CFStringGetUnicode(CFStringRefObject *_self, PyObject *_args)
2358n/a{
2359n/a PyObject *_res = NULL;
2360n/a
2361n/a int size = CFStringGetLength(_self->ob_itself)+1;
2362n/a Py_UNICODE *data = malloc(size*sizeof(Py_UNICODE));
2363n/a CFRange range;
2364n/a
2365n/a range.location = 0;
2366n/a range.length = size;
2367n/a if( data == NULL ) return PyErr_NoMemory();
2368n/a CFStringGetCharacters(_self->ob_itself, range, data);
2369n/a _res = (PyObject *)PyUnicode_FromUnicode(data, size-1);
2370n/a free(data);
2371n/a return _res;
2372n/a
2373n/a}
2374n/a
2375n/astatic PyMethodDef CFStringRefObj_methods[] = {
2376n/a {"CFStringCreateWithSubstring", (PyCFunction)CFStringRefObj_CFStringCreateWithSubstring, 1,
2377n/a PyDoc_STR("(CFRange range) -> (CFStringRef _rv)")},
2378n/a {"CFStringCreateCopy", (PyCFunction)CFStringRefObj_CFStringCreateCopy, 1,
2379n/a PyDoc_STR("() -> (CFStringRef _rv)")},
2380n/a {"CFStringGetLength", (PyCFunction)CFStringRefObj_CFStringGetLength, 1,
2381n/a PyDoc_STR("() -> (CFIndex _rv)")},
2382n/a {"CFStringGetBytes", (PyCFunction)CFStringRefObj_CFStringGetBytes, 1,
2383n/a PyDoc_STR("(CFRange range, CFStringEncoding encoding, UInt8 lossByte, Boolean isExternalRepresentation, CFIndex maxBufLen) -> (CFIndex _rv, UInt8 buffer, CFIndex usedBufLen)")},
2384n/a {"CFStringCreateExternalRepresentation", (PyCFunction)CFStringRefObj_CFStringCreateExternalRepresentation, 1,
2385n/a PyDoc_STR("(CFStringEncoding encoding, UInt8 lossByte) -> (CFDataRef _rv)")},
2386n/a {"CFStringGetSmallestEncoding", (PyCFunction)CFStringRefObj_CFStringGetSmallestEncoding, 1,
2387n/a PyDoc_STR("() -> (CFStringEncoding _rv)")},
2388n/a {"CFStringGetFastestEncoding", (PyCFunction)CFStringRefObj_CFStringGetFastestEncoding, 1,
2389n/a PyDoc_STR("() -> (CFStringEncoding _rv)")},
2390n/a {"CFStringCompareWithOptions", (PyCFunction)CFStringRefObj_CFStringCompareWithOptions, 1,
2391n/a PyDoc_STR("(CFStringRef theString2, CFRange rangeToCompare, CFOptionFlags compareOptions) -> (CFComparisonResult _rv)")},
2392n/a {"CFStringCompare", (PyCFunction)CFStringRefObj_CFStringCompare, 1,
2393n/a PyDoc_STR("(CFStringRef theString2, CFOptionFlags compareOptions) -> (CFComparisonResult _rv)")},
2394n/a {"CFStringFindWithOptions", (PyCFunction)CFStringRefObj_CFStringFindWithOptions, 1,
2395n/a PyDoc_STR("(CFStringRef stringToFind, CFRange rangeToSearch, CFOptionFlags searchOptions) -> (Boolean _rv, CFRange result)")},
2396n/a {"CFStringCreateArrayWithFindResults", (PyCFunction)CFStringRefObj_CFStringCreateArrayWithFindResults, 1,
2397n/a PyDoc_STR("(CFStringRef stringToFind, CFRange rangeToSearch, CFOptionFlags compareOptions) -> (CFArrayRef _rv)")},
2398n/a {"CFStringFind", (PyCFunction)CFStringRefObj_CFStringFind, 1,
2399n/a PyDoc_STR("(CFStringRef stringToFind, CFOptionFlags compareOptions) -> (CFRange _rv)")},
2400n/a {"CFStringHasPrefix", (PyCFunction)CFStringRefObj_CFStringHasPrefix, 1,
2401n/a PyDoc_STR("(CFStringRef prefix) -> (Boolean _rv)")},
2402n/a {"CFStringHasSuffix", (PyCFunction)CFStringRefObj_CFStringHasSuffix, 1,
2403n/a PyDoc_STR("(CFStringRef suffix) -> (Boolean _rv)")},
2404n/a {"CFStringGetLineBounds", (PyCFunction)CFStringRefObj_CFStringGetLineBounds, 1,
2405n/a PyDoc_STR("(CFRange range) -> (CFIndex lineBeginIndex, CFIndex lineEndIndex, CFIndex contentsEndIndex)")},
2406n/a {"CFStringCreateArrayBySeparatingStrings", (PyCFunction)CFStringRefObj_CFStringCreateArrayBySeparatingStrings, 1,
2407n/a PyDoc_STR("(CFStringRef separatorString) -> (CFArrayRef _rv)")},
2408n/a {"CFStringGetIntValue", (PyCFunction)CFStringRefObj_CFStringGetIntValue, 1,
2409n/a PyDoc_STR("() -> (SInt32 _rv)")},
2410n/a {"CFStringGetDoubleValue", (PyCFunction)CFStringRefObj_CFStringGetDoubleValue, 1,
2411n/a PyDoc_STR("() -> (double _rv)")},
2412n/a {"CFStringConvertIANACharSetNameToEncoding", (PyCFunction)CFStringRefObj_CFStringConvertIANACharSetNameToEncoding, 1,
2413n/a PyDoc_STR("() -> (CFStringEncoding _rv)")},
2414n/a {"CFShowStr", (PyCFunction)CFStringRefObj_CFShowStr, 1,
2415n/a PyDoc_STR("() -> None")},
2416n/a {"CFURLCreateWithString", (PyCFunction)CFStringRefObj_CFURLCreateWithString, 1,
2417n/a PyDoc_STR("(CFURLRef baseURL) -> (CFURLRef _rv)")},
2418n/a {"CFURLCreateWithFileSystemPath", (PyCFunction)CFStringRefObj_CFURLCreateWithFileSystemPath, 1,
2419n/a PyDoc_STR("(CFURLPathStyle pathStyle, Boolean isDirectory) -> (CFURLRef _rv)")},
2420n/a {"CFURLCreateWithFileSystemPathRelativeToBase", (PyCFunction)CFStringRefObj_CFURLCreateWithFileSystemPathRelativeToBase, 1,
2421n/a PyDoc_STR("(CFURLPathStyle pathStyle, Boolean isDirectory, CFURLRef baseURL) -> (CFURLRef _rv)")},
2422n/a {"CFURLCreateStringByReplacingPercentEscapes", (PyCFunction)CFStringRefObj_CFURLCreateStringByReplacingPercentEscapes, 1,
2423n/a PyDoc_STR("(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)")},
2424n/a {"CFURLCreateStringByAddingPercentEscapes", (PyCFunction)CFStringRefObj_CFURLCreateStringByAddingPercentEscapes, 1,
2425n/a PyDoc_STR("(CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding) -> (CFStringRef _rv)")},
2426n/a {"CFStringGetString", (PyCFunction)CFStringRefObj_CFStringGetString, 1,
2427n/a PyDoc_STR("() -> (string _rv)")},
2428n/a {"CFStringGetUnicode", (PyCFunction)CFStringRefObj_CFStringGetUnicode, 1,
2429n/a PyDoc_STR("() -> (unicode _rv)")},
2430n/a {NULL, NULL, 0}
2431n/a};
2432n/a
2433n/a#define CFStringRefObj_getsetlist NULL
2434n/a
2435n/a
2436n/astatic int CFStringRefObj_compare(CFStringRefObject *self, CFStringRefObject *other)
2437n/a{
2438n/a /* XXXX Or should we use CFEqual?? */
2439n/a if ( self->ob_itself > other->ob_itself ) return 1;
2440n/a if ( self->ob_itself < other->ob_itself ) return -1;
2441n/a return 0;
2442n/a}
2443n/a
2444n/astatic PyObject * CFStringRefObj_repr(CFStringRefObject *self)
2445n/a{
2446n/a char buf[100];
2447n/a sprintf(buf, "<CFStringRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
2448n/a return PyString_FromString(buf);
2449n/a}
2450n/a
2451n/astatic int CFStringRefObj_hash(CFStringRefObject *self)
2452n/a{
2453n/a /* XXXX Or should we use CFHash?? */
2454n/a return (int)self->ob_itself;
2455n/a}
2456n/astatic int CFStringRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
2457n/a{
2458n/a CFStringRef itself;
2459n/a char *kw[] = {"itself", 0};
2460n/a
2461n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFStringRefObj_Convert, &itself))
2462n/a {
2463n/a ((CFStringRefObject *)_self)->ob_itself = itself;
2464n/a return 0;
2465n/a }
2466n/a
2467n/a /* Any CFTypeRef descendent is allowed as initializer too */
2468n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
2469n/a {
2470n/a ((CFStringRefObject *)_self)->ob_itself = itself;
2471n/a return 0;
2472n/a }
2473n/a return -1;
2474n/a}
2475n/a
2476n/a#define CFStringRefObj_tp_alloc PyType_GenericAlloc
2477n/a
2478n/astatic PyObject *CFStringRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
2479n/a{
2480n/a PyObject *self;
2481n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
2482n/a ((CFStringRefObject *)self)->ob_itself = NULL;
2483n/a ((CFStringRefObject *)self)->ob_freeit = CFRelease;
2484n/a return self;
2485n/a}
2486n/a
2487n/a#define CFStringRefObj_tp_free PyObject_Del
2488n/a
2489n/a
2490n/aPyTypeObject CFStringRef_Type = {
2491n/a PyObject_HEAD_INIT(NULL)
2492n/a 0, /*ob_size*/
2493n/a "_CF.CFStringRef", /*tp_name*/
2494n/a sizeof(CFStringRefObject), /*tp_basicsize*/
2495n/a 0, /*tp_itemsize*/
2496n/a /* methods */
2497n/a (destructor) CFStringRefObj_dealloc, /*tp_dealloc*/
2498n/a 0, /*tp_print*/
2499n/a (getattrfunc)0, /*tp_getattr*/
2500n/a (setattrfunc)0, /*tp_setattr*/
2501n/a (cmpfunc) CFStringRefObj_compare, /*tp_compare*/
2502n/a (reprfunc) CFStringRefObj_repr, /*tp_repr*/
2503n/a (PyNumberMethods *)0, /* tp_as_number */
2504n/a (PySequenceMethods *)0, /* tp_as_sequence */
2505n/a (PyMappingMethods *)0, /* tp_as_mapping */
2506n/a (hashfunc) CFStringRefObj_hash, /*tp_hash*/
2507n/a 0, /*tp_call*/
2508n/a 0, /*tp_str*/
2509n/a PyObject_GenericGetAttr, /*tp_getattro*/
2510n/a PyObject_GenericSetAttr, /*tp_setattro */
2511n/a 0, /*tp_as_buffer*/
2512n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
2513n/a 0, /*tp_doc*/
2514n/a 0, /*tp_traverse*/
2515n/a 0, /*tp_clear*/
2516n/a 0, /*tp_richcompare*/
2517n/a 0, /*tp_weaklistoffset*/
2518n/a 0, /*tp_iter*/
2519n/a 0, /*tp_iternext*/
2520n/a CFStringRefObj_methods, /* tp_methods */
2521n/a 0, /*tp_members*/
2522n/a CFStringRefObj_getsetlist, /*tp_getset*/
2523n/a 0, /*tp_base*/
2524n/a 0, /*tp_dict*/
2525n/a 0, /*tp_descr_get*/
2526n/a 0, /*tp_descr_set*/
2527n/a 0, /*tp_dictoffset*/
2528n/a CFStringRefObj_tp_init, /* tp_init */
2529n/a CFStringRefObj_tp_alloc, /* tp_alloc */
2530n/a CFStringRefObj_tp_new, /* tp_new */
2531n/a CFStringRefObj_tp_free, /* tp_free */
2532n/a};
2533n/a
2534n/a/* ------------------ End object type CFStringRef ------------------- */
2535n/a
2536n/a
2537n/a/* ----------------- Object type CFMutableStringRef ----------------- */
2538n/a
2539n/aPyTypeObject CFMutableStringRef_Type;
2540n/a
2541n/a#define CFMutableStringRefObj_Check(x) ((x)->ob_type == &CFMutableStringRef_Type || PyObject_TypeCheck((x), &CFMutableStringRef_Type))
2542n/a
2543n/atypedef struct CFMutableStringRefObject {
2544n/a PyObject_HEAD
2545n/a CFMutableStringRef ob_itself;
2546n/a void (*ob_freeit)(CFTypeRef ptr);
2547n/a} CFMutableStringRefObject;
2548n/a
2549n/aPyObject *CFMutableStringRefObj_New(CFMutableStringRef itself)
2550n/a{
2551n/a CFMutableStringRefObject *it;
2552n/a if (itself == NULL)
2553n/a {
2554n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
2555n/a return NULL;
2556n/a }
2557n/a it = PyObject_NEW(CFMutableStringRefObject, &CFMutableStringRef_Type);
2558n/a if (it == NULL) return NULL;
2559n/a /* XXXX Should we tp_init or tp_new our basetype? */
2560n/a it->ob_itself = itself;
2561n/a it->ob_freeit = CFRelease;
2562n/a return (PyObject *)it;
2563n/a}
2564n/a
2565n/aint CFMutableStringRefObj_Convert(PyObject *v, CFMutableStringRef *p_itself)
2566n/a{
2567n/a
2568n/a if (v == Py_None) { *p_itself = NULL; return 1; }
2569n/a /* Check for other CF objects here */
2570n/a
2571n/a if (!CFMutableStringRefObj_Check(v))
2572n/a {
2573n/a PyErr_SetString(PyExc_TypeError, "CFMutableStringRef required");
2574n/a return 0;
2575n/a }
2576n/a *p_itself = ((CFMutableStringRefObject *)v)->ob_itself;
2577n/a return 1;
2578n/a}
2579n/a
2580n/astatic void CFMutableStringRefObj_dealloc(CFMutableStringRefObject *self)
2581n/a{
2582n/a if (self->ob_freeit && self->ob_itself)
2583n/a {
2584n/a self->ob_freeit((CFTypeRef)self->ob_itself);
2585n/a self->ob_itself = NULL;
2586n/a }
2587n/a CFStringRef_Type.tp_dealloc((PyObject *)self);
2588n/a}
2589n/a
2590n/astatic PyObject *CFMutableStringRefObj_CFStringAppend(CFMutableStringRefObject *_self, PyObject *_args)
2591n/a{
2592n/a PyObject *_res = NULL;
2593n/a CFStringRef appendedString;
2594n/a#ifndef CFStringAppend
2595n/a PyMac_PRECHECK(CFStringAppend);
2596n/a#endif
2597n/a if (!PyArg_ParseTuple(_args, "O&",
2598n/a CFStringRefObj_Convert, &appendedString))
2599n/a return NULL;
2600n/a CFStringAppend(_self->ob_itself,
2601n/a appendedString);
2602n/a Py_INCREF(Py_None);
2603n/a _res = Py_None;
2604n/a return _res;
2605n/a}
2606n/a
2607n/astatic PyObject *CFMutableStringRefObj_CFStringAppendCharacters(CFMutableStringRefObject *_self, PyObject *_args)
2608n/a{
2609n/a PyObject *_res = NULL;
2610n/a UniChar *chars__in__;
2611n/a UniCharCount chars__len__;
2612n/a int chars__in_len__;
2613n/a#ifndef CFStringAppendCharacters
2614n/a PyMac_PRECHECK(CFStringAppendCharacters);
2615n/a#endif
2616n/a if (!PyArg_ParseTuple(_args, "u#",
2617n/a &chars__in__, &chars__in_len__))
2618n/a return NULL;
2619n/a chars__len__ = chars__in_len__;
2620n/a CFStringAppendCharacters(_self->ob_itself,
2621n/a chars__in__, chars__len__);
2622n/a Py_INCREF(Py_None);
2623n/a _res = Py_None;
2624n/a return _res;
2625n/a}
2626n/a
2627n/astatic PyObject *CFMutableStringRefObj_CFStringAppendPascalString(CFMutableStringRefObject *_self, PyObject *_args)
2628n/a{
2629n/a PyObject *_res = NULL;
2630n/a Str255 pStr;
2631n/a CFStringEncoding encoding;
2632n/a#ifndef CFStringAppendPascalString
2633n/a PyMac_PRECHECK(CFStringAppendPascalString);
2634n/a#endif
2635n/a if (!PyArg_ParseTuple(_args, "O&l",
2636n/a PyMac_GetStr255, pStr,
2637n/a &encoding))
2638n/a return NULL;
2639n/a CFStringAppendPascalString(_self->ob_itself,
2640n/a pStr,
2641n/a encoding);
2642n/a Py_INCREF(Py_None);
2643n/a _res = Py_None;
2644n/a return _res;
2645n/a}
2646n/a
2647n/astatic PyObject *CFMutableStringRefObj_CFStringAppendCString(CFMutableStringRefObject *_self, PyObject *_args)
2648n/a{
2649n/a PyObject *_res = NULL;
2650n/a char* cStr;
2651n/a CFStringEncoding encoding;
2652n/a#ifndef CFStringAppendCString
2653n/a PyMac_PRECHECK(CFStringAppendCString);
2654n/a#endif
2655n/a if (!PyArg_ParseTuple(_args, "sl",
2656n/a &cStr,
2657n/a &encoding))
2658n/a return NULL;
2659n/a CFStringAppendCString(_self->ob_itself,
2660n/a cStr,
2661n/a encoding);
2662n/a Py_INCREF(Py_None);
2663n/a _res = Py_None;
2664n/a return _res;
2665n/a}
2666n/a
2667n/astatic PyObject *CFMutableStringRefObj_CFStringInsert(CFMutableStringRefObject *_self, PyObject *_args)
2668n/a{
2669n/a PyObject *_res = NULL;
2670n/a CFIndex idx;
2671n/a CFStringRef insertedStr;
2672n/a#ifndef CFStringInsert
2673n/a PyMac_PRECHECK(CFStringInsert);
2674n/a#endif
2675n/a if (!PyArg_ParseTuple(_args, "lO&",
2676n/a &idx,
2677n/a CFStringRefObj_Convert, &insertedStr))
2678n/a return NULL;
2679n/a CFStringInsert(_self->ob_itself,
2680n/a idx,
2681n/a insertedStr);
2682n/a Py_INCREF(Py_None);
2683n/a _res = Py_None;
2684n/a return _res;
2685n/a}
2686n/a
2687n/astatic PyObject *CFMutableStringRefObj_CFStringDelete(CFMutableStringRefObject *_self, PyObject *_args)
2688n/a{
2689n/a PyObject *_res = NULL;
2690n/a CFRange range;
2691n/a#ifndef CFStringDelete
2692n/a PyMac_PRECHECK(CFStringDelete);
2693n/a#endif
2694n/a if (!PyArg_ParseTuple(_args, "O&",
2695n/a CFRange_Convert, &range))
2696n/a return NULL;
2697n/a CFStringDelete(_self->ob_itself,
2698n/a range);
2699n/a Py_INCREF(Py_None);
2700n/a _res = Py_None;
2701n/a return _res;
2702n/a}
2703n/a
2704n/astatic PyObject *CFMutableStringRefObj_CFStringReplace(CFMutableStringRefObject *_self, PyObject *_args)
2705n/a{
2706n/a PyObject *_res = NULL;
2707n/a CFRange range;
2708n/a CFStringRef replacement;
2709n/a#ifndef CFStringReplace
2710n/a PyMac_PRECHECK(CFStringReplace);
2711n/a#endif
2712n/a if (!PyArg_ParseTuple(_args, "O&O&",
2713n/a CFRange_Convert, &range,
2714n/a CFStringRefObj_Convert, &replacement))
2715n/a return NULL;
2716n/a CFStringReplace(_self->ob_itself,
2717n/a range,
2718n/a replacement);
2719n/a Py_INCREF(Py_None);
2720n/a _res = Py_None;
2721n/a return _res;
2722n/a}
2723n/a
2724n/astatic PyObject *CFMutableStringRefObj_CFStringReplaceAll(CFMutableStringRefObject *_self, PyObject *_args)
2725n/a{
2726n/a PyObject *_res = NULL;
2727n/a CFStringRef replacement;
2728n/a#ifndef CFStringReplaceAll
2729n/a PyMac_PRECHECK(CFStringReplaceAll);
2730n/a#endif
2731n/a if (!PyArg_ParseTuple(_args, "O&",
2732n/a CFStringRefObj_Convert, &replacement))
2733n/a return NULL;
2734n/a CFStringReplaceAll(_self->ob_itself,
2735n/a replacement);
2736n/a Py_INCREF(Py_None);
2737n/a _res = Py_None;
2738n/a return _res;
2739n/a}
2740n/a
2741n/astatic PyObject *CFMutableStringRefObj_CFStringPad(CFMutableStringRefObject *_self, PyObject *_args)
2742n/a{
2743n/a PyObject *_res = NULL;
2744n/a CFStringRef padString;
2745n/a CFIndex length;
2746n/a CFIndex indexIntoPad;
2747n/a#ifndef CFStringPad
2748n/a PyMac_PRECHECK(CFStringPad);
2749n/a#endif
2750n/a if (!PyArg_ParseTuple(_args, "O&ll",
2751n/a CFStringRefObj_Convert, &padString,
2752n/a &length,
2753n/a &indexIntoPad))
2754n/a return NULL;
2755n/a CFStringPad(_self->ob_itself,
2756n/a padString,
2757n/a length,
2758n/a indexIntoPad);
2759n/a Py_INCREF(Py_None);
2760n/a _res = Py_None;
2761n/a return _res;
2762n/a}
2763n/a
2764n/astatic PyObject *CFMutableStringRefObj_CFStringTrim(CFMutableStringRefObject *_self, PyObject *_args)
2765n/a{
2766n/a PyObject *_res = NULL;
2767n/a CFStringRef trimString;
2768n/a#ifndef CFStringTrim
2769n/a PyMac_PRECHECK(CFStringTrim);
2770n/a#endif
2771n/a if (!PyArg_ParseTuple(_args, "O&",
2772n/a CFStringRefObj_Convert, &trimString))
2773n/a return NULL;
2774n/a CFStringTrim(_self->ob_itself,
2775n/a trimString);
2776n/a Py_INCREF(Py_None);
2777n/a _res = Py_None;
2778n/a return _res;
2779n/a}
2780n/a
2781n/astatic PyObject *CFMutableStringRefObj_CFStringTrimWhitespace(CFMutableStringRefObject *_self, PyObject *_args)
2782n/a{
2783n/a PyObject *_res = NULL;
2784n/a#ifndef CFStringTrimWhitespace
2785n/a PyMac_PRECHECK(CFStringTrimWhitespace);
2786n/a#endif
2787n/a if (!PyArg_ParseTuple(_args, ""))
2788n/a return NULL;
2789n/a CFStringTrimWhitespace(_self->ob_itself);
2790n/a Py_INCREF(Py_None);
2791n/a _res = Py_None;
2792n/a return _res;
2793n/a}
2794n/a
2795n/astatic PyMethodDef CFMutableStringRefObj_methods[] = {
2796n/a {"CFStringAppend", (PyCFunction)CFMutableStringRefObj_CFStringAppend, 1,
2797n/a PyDoc_STR("(CFStringRef appendedString) -> None")},
2798n/a {"CFStringAppendCharacters", (PyCFunction)CFMutableStringRefObj_CFStringAppendCharacters, 1,
2799n/a PyDoc_STR("(Buffer chars) -> None")},
2800n/a {"CFStringAppendPascalString", (PyCFunction)CFMutableStringRefObj_CFStringAppendPascalString, 1,
2801n/a PyDoc_STR("(Str255 pStr, CFStringEncoding encoding) -> None")},
2802n/a {"CFStringAppendCString", (PyCFunction)CFMutableStringRefObj_CFStringAppendCString, 1,
2803n/a PyDoc_STR("(char* cStr, CFStringEncoding encoding) -> None")},
2804n/a {"CFStringInsert", (PyCFunction)CFMutableStringRefObj_CFStringInsert, 1,
2805n/a PyDoc_STR("(CFIndex idx, CFStringRef insertedStr) -> None")},
2806n/a {"CFStringDelete", (PyCFunction)CFMutableStringRefObj_CFStringDelete, 1,
2807n/a PyDoc_STR("(CFRange range) -> None")},
2808n/a {"CFStringReplace", (PyCFunction)CFMutableStringRefObj_CFStringReplace, 1,
2809n/a PyDoc_STR("(CFRange range, CFStringRef replacement) -> None")},
2810n/a {"CFStringReplaceAll", (PyCFunction)CFMutableStringRefObj_CFStringReplaceAll, 1,
2811n/a PyDoc_STR("(CFStringRef replacement) -> None")},
2812n/a {"CFStringPad", (PyCFunction)CFMutableStringRefObj_CFStringPad, 1,
2813n/a PyDoc_STR("(CFStringRef padString, CFIndex length, CFIndex indexIntoPad) -> None")},
2814n/a {"CFStringTrim", (PyCFunction)CFMutableStringRefObj_CFStringTrim, 1,
2815n/a PyDoc_STR("(CFStringRef trimString) -> None")},
2816n/a {"CFStringTrimWhitespace", (PyCFunction)CFMutableStringRefObj_CFStringTrimWhitespace, 1,
2817n/a PyDoc_STR("() -> None")},
2818n/a {NULL, NULL, 0}
2819n/a};
2820n/a
2821n/a#define CFMutableStringRefObj_getsetlist NULL
2822n/a
2823n/a
2824n/astatic int CFMutableStringRefObj_compare(CFMutableStringRefObject *self, CFMutableStringRefObject *other)
2825n/a{
2826n/a /* XXXX Or should we use CFEqual?? */
2827n/a if ( self->ob_itself > other->ob_itself ) return 1;
2828n/a if ( self->ob_itself < other->ob_itself ) return -1;
2829n/a return 0;
2830n/a}
2831n/a
2832n/astatic PyObject * CFMutableStringRefObj_repr(CFMutableStringRefObject *self)
2833n/a{
2834n/a char buf[100];
2835n/a sprintf(buf, "<CFMutableStringRef object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
2836n/a return PyString_FromString(buf);
2837n/a}
2838n/a
2839n/astatic int CFMutableStringRefObj_hash(CFMutableStringRefObject *self)
2840n/a{
2841n/a /* XXXX Or should we use CFHash?? */
2842n/a return (int)self->ob_itself;
2843n/a}
2844n/astatic int CFMutableStringRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
2845n/a{
2846n/a CFMutableStringRef itself;
2847n/a char *kw[] = {"itself", 0};
2848n/a
2849n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFMutableStringRefObj_Convert, &itself))
2850n/a {
2851n/a ((CFMutableStringRefObject *)_self)->ob_itself = itself;
2852n/a return 0;
2853n/a }
2854n/a
2855n/a /* Any CFTypeRef descendent is allowed as initializer too */
2856n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
2857n/a {
2858n/a ((CFMutableStringRefObject *)_self)->ob_itself = itself;
2859n/a return 0;
2860n/a }
2861n/a return -1;
2862n/a}
2863n/a
2864n/a#define CFMutableStringRefObj_tp_alloc PyType_GenericAlloc
2865n/a
2866n/astatic PyObject *CFMutableStringRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
2867n/a{
2868n/a PyObject *self;
2869n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
2870n/a ((CFMutableStringRefObject *)self)->ob_itself = NULL;
2871n/a ((CFMutableStringRefObject *)self)->ob_freeit = CFRelease;
2872n/a return self;
2873n/a}
2874n/a
2875n/a#define CFMutableStringRefObj_tp_free PyObject_Del
2876n/a
2877n/a
2878n/aPyTypeObject CFMutableStringRef_Type = {
2879n/a PyObject_HEAD_INIT(NULL)
2880n/a 0, /*ob_size*/
2881n/a "_CF.CFMutableStringRef", /*tp_name*/
2882n/a sizeof(CFMutableStringRefObject), /*tp_basicsize*/
2883n/a 0, /*tp_itemsize*/
2884n/a /* methods */
2885n/a (destructor) CFMutableStringRefObj_dealloc, /*tp_dealloc*/
2886n/a 0, /*tp_print*/
2887n/a (getattrfunc)0, /*tp_getattr*/
2888n/a (setattrfunc)0, /*tp_setattr*/
2889n/a (cmpfunc) CFMutableStringRefObj_compare, /*tp_compare*/
2890n/a (reprfunc) CFMutableStringRefObj_repr, /*tp_repr*/
2891n/a (PyNumberMethods *)0, /* tp_as_number */
2892n/a (PySequenceMethods *)0, /* tp_as_sequence */
2893n/a (PyMappingMethods *)0, /* tp_as_mapping */
2894n/a (hashfunc) CFMutableStringRefObj_hash, /*tp_hash*/
2895n/a 0, /*tp_call*/
2896n/a 0, /*tp_str*/
2897n/a PyObject_GenericGetAttr, /*tp_getattro*/
2898n/a PyObject_GenericSetAttr, /*tp_setattro */
2899n/a 0, /*tp_as_buffer*/
2900n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
2901n/a 0, /*tp_doc*/
2902n/a 0, /*tp_traverse*/
2903n/a 0, /*tp_clear*/
2904n/a 0, /*tp_richcompare*/
2905n/a 0, /*tp_weaklistoffset*/
2906n/a 0, /*tp_iter*/
2907n/a 0, /*tp_iternext*/
2908n/a CFMutableStringRefObj_methods, /* tp_methods */
2909n/a 0, /*tp_members*/
2910n/a CFMutableStringRefObj_getsetlist, /*tp_getset*/
2911n/a 0, /*tp_base*/
2912n/a 0, /*tp_dict*/
2913n/a 0, /*tp_descr_get*/
2914n/a 0, /*tp_descr_set*/
2915n/a 0, /*tp_dictoffset*/
2916n/a CFMutableStringRefObj_tp_init, /* tp_init */
2917n/a CFMutableStringRefObj_tp_alloc, /* tp_alloc */
2918n/a CFMutableStringRefObj_tp_new, /* tp_new */
2919n/a CFMutableStringRefObj_tp_free, /* tp_free */
2920n/a};
2921n/a
2922n/a/* --------------- End object type CFMutableStringRef --------------- */
2923n/a
2924n/a
2925n/a/* ---------------------- Object type CFURLRef ---------------------- */
2926n/a
2927n/aPyTypeObject CFURLRef_Type;
2928n/a
2929n/a#define CFURLRefObj_Check(x) ((x)->ob_type == &CFURLRef_Type || PyObject_TypeCheck((x), &CFURLRef_Type))
2930n/a
2931n/atypedef struct CFURLRefObject {
2932n/a PyObject_HEAD
2933n/a CFURLRef ob_itself;
2934n/a void (*ob_freeit)(CFTypeRef ptr);
2935n/a} CFURLRefObject;
2936n/a
2937n/aPyObject *CFURLRefObj_New(CFURLRef itself)
2938n/a{
2939n/a CFURLRefObject *it;
2940n/a if (itself == NULL)
2941n/a {
2942n/a PyErr_SetString(PyExc_RuntimeError, "cannot wrap NULL");
2943n/a return NULL;
2944n/a }
2945n/a it = PyObject_NEW(CFURLRefObject, &CFURLRef_Type);
2946n/a if (it == NULL) return NULL;
2947n/a /* XXXX Should we tp_init or tp_new our basetype? */
2948n/a it->ob_itself = itself;
2949n/a it->ob_freeit = CFRelease;
2950n/a return (PyObject *)it;
2951n/a}
2952n/a
2953n/aint CFURLRefObj_Convert(PyObject *v, CFURLRef *p_itself)
2954n/a{
2955n/a
2956n/a if (v == Py_None) { *p_itself = NULL; return 1; }
2957n/a /* Check for other CF objects here */
2958n/a
2959n/a if (!CFURLRefObj_Check(v))
2960n/a {
2961n/a PyErr_SetString(PyExc_TypeError, "CFURLRef required");
2962n/a return 0;
2963n/a }
2964n/a *p_itself = ((CFURLRefObject *)v)->ob_itself;
2965n/a return 1;
2966n/a}
2967n/a
2968n/astatic void CFURLRefObj_dealloc(CFURLRefObject *self)
2969n/a{
2970n/a if (self->ob_freeit && self->ob_itself)
2971n/a {
2972n/a self->ob_freeit((CFTypeRef)self->ob_itself);
2973n/a self->ob_itself = NULL;
2974n/a }
2975n/a CFTypeRef_Type.tp_dealloc((PyObject *)self);
2976n/a}
2977n/a
2978n/astatic PyObject *CFURLRefObj_CFURLCreateData(CFURLRefObject *_self, PyObject *_args)
2979n/a{
2980n/a PyObject *_res = NULL;
2981n/a CFDataRef _rv;
2982n/a CFStringEncoding encoding;
2983n/a Boolean escapeWhitespace;
2984n/a if (!PyArg_ParseTuple(_args, "ll",
2985n/a &encoding,
2986n/a &escapeWhitespace))
2987n/a return NULL;
2988n/a _rv = CFURLCreateData((CFAllocatorRef)NULL,
2989n/a _self->ob_itself,
2990n/a encoding,
2991n/a escapeWhitespace);
2992n/a _res = Py_BuildValue("O&",
2993n/a CFDataRefObj_New, _rv);
2994n/a return _res;
2995n/a}
2996n/a
2997n/astatic PyObject *CFURLRefObj_CFURLGetFileSystemRepresentation(CFURLRefObject *_self, PyObject *_args)
2998n/a{
2999n/a PyObject *_res = NULL;
3000n/a Boolean _rv;
3001n/a Boolean resolveAgainstBase;
3002n/a UInt8 buffer;
3003n/a CFIndex maxBufLen;
3004n/a#ifndef CFURLGetFileSystemRepresentation
3005n/a PyMac_PRECHECK(CFURLGetFileSystemRepresentation);
3006n/a#endif
3007n/a if (!PyArg_ParseTuple(_args, "ll",
3008n/a &resolveAgainstBase,
3009n/a &maxBufLen))
3010n/a return NULL;
3011n/a _rv = CFURLGetFileSystemRepresentation(_self->ob_itself,
3012n/a resolveAgainstBase,
3013n/a &buffer,
3014n/a maxBufLen);
3015n/a _res = Py_BuildValue("lb",
3016n/a _rv,
3017n/a buffer);
3018n/a return _res;
3019n/a}
3020n/a
3021n/astatic PyObject *CFURLRefObj_CFURLCopyAbsoluteURL(CFURLRefObject *_self, PyObject *_args)
3022n/a{
3023n/a PyObject *_res = NULL;
3024n/a CFURLRef _rv;
3025n/a#ifndef CFURLCopyAbsoluteURL
3026n/a PyMac_PRECHECK(CFURLCopyAbsoluteURL);
3027n/a#endif
3028n/a if (!PyArg_ParseTuple(_args, ""))
3029n/a return NULL;
3030n/a _rv = CFURLCopyAbsoluteURL(_self->ob_itself);
3031n/a _res = Py_BuildValue("O&",
3032n/a CFURLRefObj_New, _rv);
3033n/a return _res;
3034n/a}
3035n/a
3036n/astatic PyObject *CFURLRefObj_CFURLGetString(CFURLRefObject *_self, PyObject *_args)
3037n/a{
3038n/a PyObject *_res = NULL;
3039n/a CFStringRef _rv;
3040n/a#ifndef CFURLGetString
3041n/a PyMac_PRECHECK(CFURLGetString);
3042n/a#endif
3043n/a if (!PyArg_ParseTuple(_args, ""))
3044n/a return NULL;
3045n/a _rv = CFURLGetString(_self->ob_itself);
3046n/a _res = Py_BuildValue("O&",
3047n/a CFStringRefObj_New, _rv);
3048n/a return _res;
3049n/a}
3050n/a
3051n/astatic PyObject *CFURLRefObj_CFURLGetBaseURL(CFURLRefObject *_self, PyObject *_args)
3052n/a{
3053n/a PyObject *_res = NULL;
3054n/a CFURLRef _rv;
3055n/a#ifndef CFURLGetBaseURL
3056n/a PyMac_PRECHECK(CFURLGetBaseURL);
3057n/a#endif
3058n/a if (!PyArg_ParseTuple(_args, ""))
3059n/a return NULL;
3060n/a _rv = CFURLGetBaseURL(_self->ob_itself);
3061n/a _res = Py_BuildValue("O&",
3062n/a CFURLRefObj_New, _rv);
3063n/a return _res;
3064n/a}
3065n/a
3066n/astatic PyObject *CFURLRefObj_CFURLCanBeDecomposed(CFURLRefObject *_self, PyObject *_args)
3067n/a{
3068n/a PyObject *_res = NULL;
3069n/a Boolean _rv;
3070n/a#ifndef CFURLCanBeDecomposed
3071n/a PyMac_PRECHECK(CFURLCanBeDecomposed);
3072n/a#endif
3073n/a if (!PyArg_ParseTuple(_args, ""))
3074n/a return NULL;
3075n/a _rv = CFURLCanBeDecomposed(_self->ob_itself);
3076n/a _res = Py_BuildValue("l",
3077n/a _rv);
3078n/a return _res;
3079n/a}
3080n/a
3081n/astatic PyObject *CFURLRefObj_CFURLCopyScheme(CFURLRefObject *_self, PyObject *_args)
3082n/a{
3083n/a PyObject *_res = NULL;
3084n/a CFStringRef _rv;
3085n/a#ifndef CFURLCopyScheme
3086n/a PyMac_PRECHECK(CFURLCopyScheme);
3087n/a#endif
3088n/a if (!PyArg_ParseTuple(_args, ""))
3089n/a return NULL;
3090n/a _rv = CFURLCopyScheme(_self->ob_itself);
3091n/a _res = Py_BuildValue("O&",
3092n/a CFStringRefObj_New, _rv);
3093n/a return _res;
3094n/a}
3095n/a
3096n/astatic PyObject *CFURLRefObj_CFURLCopyNetLocation(CFURLRefObject *_self, PyObject *_args)
3097n/a{
3098n/a PyObject *_res = NULL;
3099n/a CFStringRef _rv;
3100n/a#ifndef CFURLCopyNetLocation
3101n/a PyMac_PRECHECK(CFURLCopyNetLocation);
3102n/a#endif
3103n/a if (!PyArg_ParseTuple(_args, ""))
3104n/a return NULL;
3105n/a _rv = CFURLCopyNetLocation(_self->ob_itself);
3106n/a _res = Py_BuildValue("O&",
3107n/a CFStringRefObj_New, _rv);
3108n/a return _res;
3109n/a}
3110n/a
3111n/astatic PyObject *CFURLRefObj_CFURLCopyPath(CFURLRefObject *_self, PyObject *_args)
3112n/a{
3113n/a PyObject *_res = NULL;
3114n/a CFStringRef _rv;
3115n/a#ifndef CFURLCopyPath
3116n/a PyMac_PRECHECK(CFURLCopyPath);
3117n/a#endif
3118n/a if (!PyArg_ParseTuple(_args, ""))
3119n/a return NULL;
3120n/a _rv = CFURLCopyPath(_self->ob_itself);
3121n/a _res = Py_BuildValue("O&",
3122n/a CFStringRefObj_New, _rv);
3123n/a return _res;
3124n/a}
3125n/a
3126n/astatic PyObject *CFURLRefObj_CFURLCopyStrictPath(CFURLRefObject *_self, PyObject *_args)
3127n/a{
3128n/a PyObject *_res = NULL;
3129n/a CFStringRef _rv;
3130n/a Boolean isAbsolute;
3131n/a#ifndef CFURLCopyStrictPath
3132n/a PyMac_PRECHECK(CFURLCopyStrictPath);
3133n/a#endif
3134n/a if (!PyArg_ParseTuple(_args, ""))
3135n/a return NULL;
3136n/a _rv = CFURLCopyStrictPath(_self->ob_itself,
3137n/a &isAbsolute);
3138n/a _res = Py_BuildValue("O&l",
3139n/a CFStringRefObj_New, _rv,
3140n/a isAbsolute);
3141n/a return _res;
3142n/a}
3143n/a
3144n/astatic PyObject *CFURLRefObj_CFURLCopyFileSystemPath(CFURLRefObject *_self, PyObject *_args)
3145n/a{
3146n/a PyObject *_res = NULL;
3147n/a CFStringRef _rv;
3148n/a CFURLPathStyle pathStyle;
3149n/a#ifndef CFURLCopyFileSystemPath
3150n/a PyMac_PRECHECK(CFURLCopyFileSystemPath);
3151n/a#endif
3152n/a if (!PyArg_ParseTuple(_args, "l",
3153n/a &pathStyle))
3154n/a return NULL;
3155n/a _rv = CFURLCopyFileSystemPath(_self->ob_itself,
3156n/a pathStyle);
3157n/a _res = Py_BuildValue("O&",
3158n/a CFStringRefObj_New, _rv);
3159n/a return _res;
3160n/a}
3161n/a
3162n/astatic PyObject *CFURLRefObj_CFURLHasDirectoryPath(CFURLRefObject *_self, PyObject *_args)
3163n/a{
3164n/a PyObject *_res = NULL;
3165n/a Boolean _rv;
3166n/a#ifndef CFURLHasDirectoryPath
3167n/a PyMac_PRECHECK(CFURLHasDirectoryPath);
3168n/a#endif
3169n/a if (!PyArg_ParseTuple(_args, ""))
3170n/a return NULL;
3171n/a _rv = CFURLHasDirectoryPath(_self->ob_itself);
3172n/a _res = Py_BuildValue("l",
3173n/a _rv);
3174n/a return _res;
3175n/a}
3176n/a
3177n/astatic PyObject *CFURLRefObj_CFURLCopyResourceSpecifier(CFURLRefObject *_self, PyObject *_args)
3178n/a{
3179n/a PyObject *_res = NULL;
3180n/a CFStringRef _rv;
3181n/a#ifndef CFURLCopyResourceSpecifier
3182n/a PyMac_PRECHECK(CFURLCopyResourceSpecifier);
3183n/a#endif
3184n/a if (!PyArg_ParseTuple(_args, ""))
3185n/a return NULL;
3186n/a _rv = CFURLCopyResourceSpecifier(_self->ob_itself);
3187n/a _res = Py_BuildValue("O&",
3188n/a CFStringRefObj_New, _rv);
3189n/a return _res;
3190n/a}
3191n/a
3192n/astatic PyObject *CFURLRefObj_CFURLCopyHostName(CFURLRefObject *_self, PyObject *_args)
3193n/a{
3194n/a PyObject *_res = NULL;
3195n/a CFStringRef _rv;
3196n/a#ifndef CFURLCopyHostName
3197n/a PyMac_PRECHECK(CFURLCopyHostName);
3198n/a#endif
3199n/a if (!PyArg_ParseTuple(_args, ""))
3200n/a return NULL;
3201n/a _rv = CFURLCopyHostName(_self->ob_itself);
3202n/a _res = Py_BuildValue("O&",
3203n/a CFStringRefObj_New, _rv);
3204n/a return _res;
3205n/a}
3206n/a
3207n/astatic PyObject *CFURLRefObj_CFURLGetPortNumber(CFURLRefObject *_self, PyObject *_args)
3208n/a{
3209n/a PyObject *_res = NULL;
3210n/a SInt32 _rv;
3211n/a#ifndef CFURLGetPortNumber
3212n/a PyMac_PRECHECK(CFURLGetPortNumber);
3213n/a#endif
3214n/a if (!PyArg_ParseTuple(_args, ""))
3215n/a return NULL;
3216n/a _rv = CFURLGetPortNumber(_self->ob_itself);
3217n/a _res = Py_BuildValue("l",
3218n/a _rv);
3219n/a return _res;
3220n/a}
3221n/a
3222n/astatic PyObject *CFURLRefObj_CFURLCopyUserName(CFURLRefObject *_self, PyObject *_args)
3223n/a{
3224n/a PyObject *_res = NULL;
3225n/a CFStringRef _rv;
3226n/a#ifndef CFURLCopyUserName
3227n/a PyMac_PRECHECK(CFURLCopyUserName);
3228n/a#endif
3229n/a if (!PyArg_ParseTuple(_args, ""))
3230n/a return NULL;
3231n/a _rv = CFURLCopyUserName(_self->ob_itself);
3232n/a _res = Py_BuildValue("O&",
3233n/a CFStringRefObj_New, _rv);
3234n/a return _res;
3235n/a}
3236n/a
3237n/astatic PyObject *CFURLRefObj_CFURLCopyPassword(CFURLRefObject *_self, PyObject *_args)
3238n/a{
3239n/a PyObject *_res = NULL;
3240n/a CFStringRef _rv;
3241n/a#ifndef CFURLCopyPassword
3242n/a PyMac_PRECHECK(CFURLCopyPassword);
3243n/a#endif
3244n/a if (!PyArg_ParseTuple(_args, ""))
3245n/a return NULL;
3246n/a _rv = CFURLCopyPassword(_self->ob_itself);
3247n/a _res = Py_BuildValue("O&",
3248n/a CFStringRefObj_New, _rv);
3249n/a return _res;
3250n/a}
3251n/a
3252n/astatic PyObject *CFURLRefObj_CFURLCopyParameterString(CFURLRefObject *_self, PyObject *_args)
3253n/a{
3254n/a PyObject *_res = NULL;
3255n/a CFStringRef _rv;
3256n/a CFStringRef charactersToLeaveEscaped;
3257n/a#ifndef CFURLCopyParameterString
3258n/a PyMac_PRECHECK(CFURLCopyParameterString);
3259n/a#endif
3260n/a if (!PyArg_ParseTuple(_args, "O&",
3261n/a CFStringRefObj_Convert, &charactersToLeaveEscaped))
3262n/a return NULL;
3263n/a _rv = CFURLCopyParameterString(_self->ob_itself,
3264n/a charactersToLeaveEscaped);
3265n/a _res = Py_BuildValue("O&",
3266n/a CFStringRefObj_New, _rv);
3267n/a return _res;
3268n/a}
3269n/a
3270n/astatic PyObject *CFURLRefObj_CFURLCopyQueryString(CFURLRefObject *_self, PyObject *_args)
3271n/a{
3272n/a PyObject *_res = NULL;
3273n/a CFStringRef _rv;
3274n/a CFStringRef charactersToLeaveEscaped;
3275n/a#ifndef CFURLCopyQueryString
3276n/a PyMac_PRECHECK(CFURLCopyQueryString);
3277n/a#endif
3278n/a if (!PyArg_ParseTuple(_args, "O&",
3279n/a CFStringRefObj_Convert, &charactersToLeaveEscaped))
3280n/a return NULL;
3281n/a _rv = CFURLCopyQueryString(_self->ob_itself,
3282n/a charactersToLeaveEscaped);
3283n/a _res = Py_BuildValue("O&",
3284n/a CFStringRefObj_New, _rv);
3285n/a return _res;
3286n/a}
3287n/a
3288n/astatic PyObject *CFURLRefObj_CFURLCopyFragment(CFURLRefObject *_self, PyObject *_args)
3289n/a{
3290n/a PyObject *_res = NULL;
3291n/a CFStringRef _rv;
3292n/a CFStringRef charactersToLeaveEscaped;
3293n/a#ifndef CFURLCopyFragment
3294n/a PyMac_PRECHECK(CFURLCopyFragment);
3295n/a#endif
3296n/a if (!PyArg_ParseTuple(_args, "O&",
3297n/a CFStringRefObj_Convert, &charactersToLeaveEscaped))
3298n/a return NULL;
3299n/a _rv = CFURLCopyFragment(_self->ob_itself,
3300n/a charactersToLeaveEscaped);
3301n/a _res = Py_BuildValue("O&",
3302n/a CFStringRefObj_New, _rv);
3303n/a return _res;
3304n/a}
3305n/a
3306n/astatic PyObject *CFURLRefObj_CFURLCopyLastPathComponent(CFURLRefObject *_self, PyObject *_args)
3307n/a{
3308n/a PyObject *_res = NULL;
3309n/a CFStringRef _rv;
3310n/a#ifndef CFURLCopyLastPathComponent
3311n/a PyMac_PRECHECK(CFURLCopyLastPathComponent);
3312n/a#endif
3313n/a if (!PyArg_ParseTuple(_args, ""))
3314n/a return NULL;
3315n/a _rv = CFURLCopyLastPathComponent(_self->ob_itself);
3316n/a _res = Py_BuildValue("O&",
3317n/a CFStringRefObj_New, _rv);
3318n/a return _res;
3319n/a}
3320n/a
3321n/astatic PyObject *CFURLRefObj_CFURLCopyPathExtension(CFURLRefObject *_self, PyObject *_args)
3322n/a{
3323n/a PyObject *_res = NULL;
3324n/a CFStringRef _rv;
3325n/a#ifndef CFURLCopyPathExtension
3326n/a PyMac_PRECHECK(CFURLCopyPathExtension);
3327n/a#endif
3328n/a if (!PyArg_ParseTuple(_args, ""))
3329n/a return NULL;
3330n/a _rv = CFURLCopyPathExtension(_self->ob_itself);
3331n/a _res = Py_BuildValue("O&",
3332n/a CFStringRefObj_New, _rv);
3333n/a return _res;
3334n/a}
3335n/a
3336n/astatic PyObject *CFURLRefObj_CFURLCreateCopyAppendingPathComponent(CFURLRefObject *_self, PyObject *_args)
3337n/a{
3338n/a PyObject *_res = NULL;
3339n/a CFURLRef _rv;
3340n/a CFStringRef pathComponent;
3341n/a Boolean isDirectory;
3342n/a if (!PyArg_ParseTuple(_args, "O&l",
3343n/a CFStringRefObj_Convert, &pathComponent,
3344n/a &isDirectory))
3345n/a return NULL;
3346n/a _rv = CFURLCreateCopyAppendingPathComponent((CFAllocatorRef)NULL,
3347n/a _self->ob_itself,
3348n/a pathComponent,
3349n/a isDirectory);
3350n/a _res = Py_BuildValue("O&",
3351n/a CFURLRefObj_New, _rv);
3352n/a return _res;
3353n/a}
3354n/a
3355n/astatic PyObject *CFURLRefObj_CFURLCreateCopyDeletingLastPathComponent(CFURLRefObject *_self, PyObject *_args)
3356n/a{
3357n/a PyObject *_res = NULL;
3358n/a CFURLRef _rv;
3359n/a if (!PyArg_ParseTuple(_args, ""))
3360n/a return NULL;
3361n/a _rv = CFURLCreateCopyDeletingLastPathComponent((CFAllocatorRef)NULL,
3362n/a _self->ob_itself);
3363n/a _res = Py_BuildValue("O&",
3364n/a CFURLRefObj_New, _rv);
3365n/a return _res;
3366n/a}
3367n/a
3368n/astatic PyObject *CFURLRefObj_CFURLCreateCopyAppendingPathExtension(CFURLRefObject *_self, PyObject *_args)
3369n/a{
3370n/a PyObject *_res = NULL;
3371n/a CFURLRef _rv;
3372n/a CFStringRef extension;
3373n/a if (!PyArg_ParseTuple(_args, "O&",
3374n/a CFStringRefObj_Convert, &extension))
3375n/a return NULL;
3376n/a _rv = CFURLCreateCopyAppendingPathExtension((CFAllocatorRef)NULL,
3377n/a _self->ob_itself,
3378n/a extension);
3379n/a _res = Py_BuildValue("O&",
3380n/a CFURLRefObj_New, _rv);
3381n/a return _res;
3382n/a}
3383n/a
3384n/astatic PyObject *CFURLRefObj_CFURLCreateCopyDeletingPathExtension(CFURLRefObject *_self, PyObject *_args)
3385n/a{
3386n/a PyObject *_res = NULL;
3387n/a CFURLRef _rv;
3388n/a if (!PyArg_ParseTuple(_args, ""))
3389n/a return NULL;
3390n/a _rv = CFURLCreateCopyDeletingPathExtension((CFAllocatorRef)NULL,
3391n/a _self->ob_itself);
3392n/a _res = Py_BuildValue("O&",
3393n/a CFURLRefObj_New, _rv);
3394n/a return _res;
3395n/a}
3396n/a
3397n/astatic PyObject *CFURLRefObj_CFURLGetFSRef(CFURLRefObject *_self, PyObject *_args)
3398n/a{
3399n/a PyObject *_res = NULL;
3400n/a Boolean _rv;
3401n/a FSRef fsRef;
3402n/a#ifndef CFURLGetFSRef
3403n/a PyMac_PRECHECK(CFURLGetFSRef);
3404n/a#endif
3405n/a if (!PyArg_ParseTuple(_args, ""))
3406n/a return NULL;
3407n/a _rv = CFURLGetFSRef(_self->ob_itself,
3408n/a &fsRef);
3409n/a _res = Py_BuildValue("lO&",
3410n/a _rv,
3411n/a PyMac_BuildFSRef, &fsRef);
3412n/a return _res;
3413n/a}
3414n/a
3415n/astatic PyMethodDef CFURLRefObj_methods[] = {
3416n/a {"CFURLCreateData", (PyCFunction)CFURLRefObj_CFURLCreateData, 1,
3417n/a PyDoc_STR("(CFStringEncoding encoding, Boolean escapeWhitespace) -> (CFDataRef _rv)")},
3418n/a {"CFURLGetFileSystemRepresentation", (PyCFunction)CFURLRefObj_CFURLGetFileSystemRepresentation, 1,
3419n/a PyDoc_STR("(Boolean resolveAgainstBase, CFIndex maxBufLen) -> (Boolean _rv, UInt8 buffer)")},
3420n/a {"CFURLCopyAbsoluteURL", (PyCFunction)CFURLRefObj_CFURLCopyAbsoluteURL, 1,
3421n/a PyDoc_STR("() -> (CFURLRef _rv)")},
3422n/a {"CFURLGetString", (PyCFunction)CFURLRefObj_CFURLGetString, 1,
3423n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3424n/a {"CFURLGetBaseURL", (PyCFunction)CFURLRefObj_CFURLGetBaseURL, 1,
3425n/a PyDoc_STR("() -> (CFURLRef _rv)")},
3426n/a {"CFURLCanBeDecomposed", (PyCFunction)CFURLRefObj_CFURLCanBeDecomposed, 1,
3427n/a PyDoc_STR("() -> (Boolean _rv)")},
3428n/a {"CFURLCopyScheme", (PyCFunction)CFURLRefObj_CFURLCopyScheme, 1,
3429n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3430n/a {"CFURLCopyNetLocation", (PyCFunction)CFURLRefObj_CFURLCopyNetLocation, 1,
3431n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3432n/a {"CFURLCopyPath", (PyCFunction)CFURLRefObj_CFURLCopyPath, 1,
3433n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3434n/a {"CFURLCopyStrictPath", (PyCFunction)CFURLRefObj_CFURLCopyStrictPath, 1,
3435n/a PyDoc_STR("() -> (CFStringRef _rv, Boolean isAbsolute)")},
3436n/a {"CFURLCopyFileSystemPath", (PyCFunction)CFURLRefObj_CFURLCopyFileSystemPath, 1,
3437n/a PyDoc_STR("(CFURLPathStyle pathStyle) -> (CFStringRef _rv)")},
3438n/a {"CFURLHasDirectoryPath", (PyCFunction)CFURLRefObj_CFURLHasDirectoryPath, 1,
3439n/a PyDoc_STR("() -> (Boolean _rv)")},
3440n/a {"CFURLCopyResourceSpecifier", (PyCFunction)CFURLRefObj_CFURLCopyResourceSpecifier, 1,
3441n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3442n/a {"CFURLCopyHostName", (PyCFunction)CFURLRefObj_CFURLCopyHostName, 1,
3443n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3444n/a {"CFURLGetPortNumber", (PyCFunction)CFURLRefObj_CFURLGetPortNumber, 1,
3445n/a PyDoc_STR("() -> (SInt32 _rv)")},
3446n/a {"CFURLCopyUserName", (PyCFunction)CFURLRefObj_CFURLCopyUserName, 1,
3447n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3448n/a {"CFURLCopyPassword", (PyCFunction)CFURLRefObj_CFURLCopyPassword, 1,
3449n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3450n/a {"CFURLCopyParameterString", (PyCFunction)CFURLRefObj_CFURLCopyParameterString, 1,
3451n/a PyDoc_STR("(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)")},
3452n/a {"CFURLCopyQueryString", (PyCFunction)CFURLRefObj_CFURLCopyQueryString, 1,
3453n/a PyDoc_STR("(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)")},
3454n/a {"CFURLCopyFragment", (PyCFunction)CFURLRefObj_CFURLCopyFragment, 1,
3455n/a PyDoc_STR("(CFStringRef charactersToLeaveEscaped) -> (CFStringRef _rv)")},
3456n/a {"CFURLCopyLastPathComponent", (PyCFunction)CFURLRefObj_CFURLCopyLastPathComponent, 1,
3457n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3458n/a {"CFURLCopyPathExtension", (PyCFunction)CFURLRefObj_CFURLCopyPathExtension, 1,
3459n/a PyDoc_STR("() -> (CFStringRef _rv)")},
3460n/a {"CFURLCreateCopyAppendingPathComponent", (PyCFunction)CFURLRefObj_CFURLCreateCopyAppendingPathComponent, 1,
3461n/a PyDoc_STR("(CFStringRef pathComponent, Boolean isDirectory) -> (CFURLRef _rv)")},
3462n/a {"CFURLCreateCopyDeletingLastPathComponent", (PyCFunction)CFURLRefObj_CFURLCreateCopyDeletingLastPathComponent, 1,
3463n/a PyDoc_STR("() -> (CFURLRef _rv)")},
3464n/a {"CFURLCreateCopyAppendingPathExtension", (PyCFunction)CFURLRefObj_CFURLCreateCopyAppendingPathExtension, 1,
3465n/a PyDoc_STR("(CFStringRef extension) -> (CFURLRef _rv)")},
3466n/a {"CFURLCreateCopyDeletingPathExtension", (PyCFunction)CFURLRefObj_CFURLCreateCopyDeletingPathExtension, 1,
3467n/a PyDoc_STR("() -> (CFURLRef _rv)")},
3468n/a {"CFURLGetFSRef", (PyCFunction)CFURLRefObj_CFURLGetFSRef, 1,
3469n/a PyDoc_STR("() -> (Boolean _rv, FSRef fsRef)")},
3470n/a {NULL, NULL, 0}
3471n/a};
3472n/a
3473n/a#define CFURLRefObj_getsetlist NULL
3474n/a
3475n/a
3476n/astatic int CFURLRefObj_compare(CFURLRefObject *self, CFURLRefObject *other)
3477n/a{
3478n/a /* XXXX Or should we use CFEqual?? */
3479n/a if ( self->ob_itself > other->ob_itself ) return 1;
3480n/a if ( self->ob_itself < other->ob_itself ) return -1;
3481n/a return 0;
3482n/a}
3483n/a
3484n/astatic PyObject * CFURLRefObj_repr(CFURLRefObject *self)
3485n/a{
3486n/a char buf[100];
3487n/a sprintf(buf, "<CFURL object at 0x%8.8x for 0x%8.8x>", (unsigned)self, (unsigned)self->ob_itself);
3488n/a return PyString_FromString(buf);
3489n/a}
3490n/a
3491n/astatic int CFURLRefObj_hash(CFURLRefObject *self)
3492n/a{
3493n/a /* XXXX Or should we use CFHash?? */
3494n/a return (int)self->ob_itself;
3495n/a}
3496n/astatic int CFURLRefObj_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)
3497n/a{
3498n/a CFURLRef itself;
3499n/a char *kw[] = {"itself", 0};
3500n/a
3501n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFURLRefObj_Convert, &itself))
3502n/a {
3503n/a ((CFURLRefObject *)_self)->ob_itself = itself;
3504n/a return 0;
3505n/a }
3506n/a
3507n/a /* Any CFTypeRef descendent is allowed as initializer too */
3508n/a if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CFTypeRefObj_Convert, &itself))
3509n/a {
3510n/a ((CFURLRefObject *)_self)->ob_itself = itself;
3511n/a return 0;
3512n/a }
3513n/a return -1;
3514n/a}
3515n/a
3516n/a#define CFURLRefObj_tp_alloc PyType_GenericAlloc
3517n/a
3518n/astatic PyObject *CFURLRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
3519n/a{
3520n/a PyObject *self;
3521n/a if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
3522n/a ((CFURLRefObject *)self)->ob_itself = NULL;
3523n/a ((CFURLRefObject *)self)->ob_freeit = CFRelease;
3524n/a return self;
3525n/a}
3526n/a
3527n/a#define CFURLRefObj_tp_free PyObject_Del
3528n/a
3529n/a
3530n/aPyTypeObject CFURLRef_Type = {
3531n/a PyObject_HEAD_INIT(NULL)
3532n/a 0, /*ob_size*/
3533n/a "_CF.CFURLRef", /*tp_name*/
3534n/a sizeof(CFURLRefObject), /*tp_basicsize*/
3535n/a 0, /*tp_itemsize*/
3536n/a /* methods */
3537n/a (destructor) CFURLRefObj_dealloc, /*tp_dealloc*/
3538n/a 0, /*tp_print*/
3539n/a (getattrfunc)0, /*tp_getattr*/
3540n/a (setattrfunc)0, /*tp_setattr*/
3541n/a (cmpfunc) CFURLRefObj_compare, /*tp_compare*/
3542n/a (reprfunc) CFURLRefObj_repr, /*tp_repr*/
3543n/a (PyNumberMethods *)0, /* tp_as_number */
3544n/a (PySequenceMethods *)0, /* tp_as_sequence */
3545n/a (PyMappingMethods *)0, /* tp_as_mapping */
3546n/a (hashfunc) CFURLRefObj_hash, /*tp_hash*/
3547n/a 0, /*tp_call*/
3548n/a 0, /*tp_str*/
3549n/a PyObject_GenericGetAttr, /*tp_getattro*/
3550n/a PyObject_GenericSetAttr, /*tp_setattro */
3551n/a 0, /*tp_as_buffer*/
3552n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
3553n/a 0, /*tp_doc*/
3554n/a 0, /*tp_traverse*/
3555n/a 0, /*tp_clear*/
3556n/a 0, /*tp_richcompare*/
3557n/a 0, /*tp_weaklistoffset*/
3558n/a 0, /*tp_iter*/
3559n/a 0, /*tp_iternext*/
3560n/a CFURLRefObj_methods, /* tp_methods */
3561n/a 0, /*tp_members*/
3562n/a CFURLRefObj_getsetlist, /*tp_getset*/
3563n/a 0, /*tp_base*/
3564n/a 0, /*tp_dict*/
3565n/a 0, /*tp_descr_get*/
3566n/a 0, /*tp_descr_set*/
3567n/a 0, /*tp_dictoffset*/
3568n/a CFURLRefObj_tp_init, /* tp_init */
3569n/a CFURLRefObj_tp_alloc, /* tp_alloc */
3570n/a CFURLRefObj_tp_new, /* tp_new */
3571n/a CFURLRefObj_tp_free, /* tp_free */
3572n/a};
3573n/a
3574n/a/* -------------------- End object type CFURLRef -------------------- */
3575n/a
3576n/a
3577n/astatic PyObject *CF___CFRangeMake(PyObject *_self, PyObject *_args)
3578n/a{
3579n/a PyObject *_res = NULL;
3580n/a CFRange _rv;
3581n/a CFIndex loc;
3582n/a CFIndex len;
3583n/a#ifndef __CFRangeMake
3584n/a PyMac_PRECHECK(__CFRangeMake);
3585n/a#endif
3586n/a if (!PyArg_ParseTuple(_args, "ll",
3587n/a &loc,
3588n/a &len))
3589n/a return NULL;
3590n/a _rv = __CFRangeMake(loc,
3591n/a len);
3592n/a _res = Py_BuildValue("O&",
3593n/a CFRange_New, _rv);
3594n/a return _res;
3595n/a}
3596n/a
3597n/astatic PyObject *CF_CFAllocatorGetTypeID(PyObject *_self, PyObject *_args)
3598n/a{
3599n/a PyObject *_res = NULL;
3600n/a CFTypeID _rv;
3601n/a#ifndef CFAllocatorGetTypeID
3602n/a PyMac_PRECHECK(CFAllocatorGetTypeID);
3603n/a#endif
3604n/a if (!PyArg_ParseTuple(_args, ""))
3605n/a return NULL;
3606n/a _rv = CFAllocatorGetTypeID();
3607n/a _res = Py_BuildValue("l",
3608n/a _rv);
3609n/a return _res;
3610n/a}
3611n/a
3612n/astatic PyObject *CF_CFAllocatorGetPreferredSizeForSize(PyObject *_self, PyObject *_args)
3613n/a{
3614n/a PyObject *_res = NULL;
3615n/a CFIndex _rv;
3616n/a CFIndex size;
3617n/a CFOptionFlags hint;
3618n/a#ifndef CFAllocatorGetPreferredSizeForSize
3619n/a PyMac_PRECHECK(CFAllocatorGetPreferredSizeForSize);
3620n/a#endif
3621n/a if (!PyArg_ParseTuple(_args, "ll",
3622n/a &size,
3623n/a &hint))
3624n/a return NULL;
3625n/a _rv = CFAllocatorGetPreferredSizeForSize((CFAllocatorRef)NULL,
3626n/a size,
3627n/a hint);
3628n/a _res = Py_BuildValue("l",
3629n/a _rv);
3630n/a return _res;
3631n/a}
3632n/a
3633n/astatic PyObject *CF_CFCopyTypeIDDescription(PyObject *_self, PyObject *_args)
3634n/a{
3635n/a PyObject *_res = NULL;
3636n/a CFStringRef _rv;
3637n/a CFTypeID type_id;
3638n/a#ifndef CFCopyTypeIDDescription
3639n/a PyMac_PRECHECK(CFCopyTypeIDDescription);
3640n/a#endif
3641n/a if (!PyArg_ParseTuple(_args, "l",
3642n/a &type_id))
3643n/a return NULL;
3644n/a _rv = CFCopyTypeIDDescription(type_id);
3645n/a _res = Py_BuildValue("O&",
3646n/a CFStringRefObj_New, _rv);
3647n/a return _res;
3648n/a}
3649n/a
3650n/astatic PyObject *CF_CFArrayGetTypeID(PyObject *_self, PyObject *_args)
3651n/a{
3652n/a PyObject *_res = NULL;
3653n/a CFTypeID _rv;
3654n/a#ifndef CFArrayGetTypeID
3655n/a PyMac_PRECHECK(CFArrayGetTypeID);
3656n/a#endif
3657n/a if (!PyArg_ParseTuple(_args, ""))
3658n/a return NULL;
3659n/a _rv = CFArrayGetTypeID();
3660n/a _res = Py_BuildValue("l",
3661n/a _rv);
3662n/a return _res;
3663n/a}
3664n/a
3665n/astatic PyObject *CF_CFArrayCreateMutable(PyObject *_self, PyObject *_args)
3666n/a{
3667n/a PyObject *_res = NULL;
3668n/a CFMutableArrayRef _rv;
3669n/a CFIndex capacity;
3670n/a#ifndef CFArrayCreateMutable
3671n/a PyMac_PRECHECK(CFArrayCreateMutable);
3672n/a#endif
3673n/a if (!PyArg_ParseTuple(_args, "l",
3674n/a &capacity))
3675n/a return NULL;
3676n/a _rv = CFArrayCreateMutable((CFAllocatorRef)NULL,
3677n/a capacity,
3678n/a &kCFTypeArrayCallBacks);
3679n/a _res = Py_BuildValue("O&",
3680n/a CFMutableArrayRefObj_New, _rv);
3681n/a return _res;
3682n/a}
3683n/a
3684n/astatic PyObject *CF_CFArrayCreateMutableCopy(PyObject *_self, PyObject *_args)
3685n/a{
3686n/a PyObject *_res = NULL;
3687n/a CFMutableArrayRef _rv;
3688n/a CFIndex capacity;
3689n/a CFArrayRef theArray;
3690n/a#ifndef CFArrayCreateMutableCopy
3691n/a PyMac_PRECHECK(CFArrayCreateMutableCopy);
3692n/a#endif
3693n/a if (!PyArg_ParseTuple(_args, "lO&",
3694n/a &capacity,
3695n/a CFArrayRefObj_Convert, &theArray))
3696n/a return NULL;
3697n/a _rv = CFArrayCreateMutableCopy((CFAllocatorRef)NULL,
3698n/a capacity,
3699n/a theArray);
3700n/a _res = Py_BuildValue("O&",
3701n/a CFMutableArrayRefObj_New, _rv);
3702n/a return _res;
3703n/a}
3704n/a
3705n/astatic PyObject *CF_CFDataGetTypeID(PyObject *_self, PyObject *_args)
3706n/a{
3707n/a PyObject *_res = NULL;
3708n/a CFTypeID _rv;
3709n/a#ifndef CFDataGetTypeID
3710n/a PyMac_PRECHECK(CFDataGetTypeID);
3711n/a#endif
3712n/a if (!PyArg_ParseTuple(_args, ""))
3713n/a return NULL;
3714n/a _rv = CFDataGetTypeID();
3715n/a _res = Py_BuildValue("l",
3716n/a _rv);
3717n/a return _res;
3718n/a}
3719n/a
3720n/astatic PyObject *CF_CFDataCreate(PyObject *_self, PyObject *_args)
3721n/a{
3722n/a PyObject *_res = NULL;
3723n/a CFDataRef _rv;
3724n/a unsigned char *bytes__in__;
3725n/a long bytes__len__;
3726n/a int bytes__in_len__;
3727n/a#ifndef CFDataCreate
3728n/a PyMac_PRECHECK(CFDataCreate);
3729n/a#endif
3730n/a if (!PyArg_ParseTuple(_args, "s#",
3731n/a &bytes__in__, &bytes__in_len__))
3732n/a return NULL;
3733n/a bytes__len__ = bytes__in_len__;
3734n/a _rv = CFDataCreate((CFAllocatorRef)NULL,
3735n/a bytes__in__, bytes__len__);
3736n/a _res = Py_BuildValue("O&",
3737n/a CFDataRefObj_New, _rv);
3738n/a return _res;
3739n/a}
3740n/a
3741n/astatic PyObject *CF_CFDataCreateWithBytesNoCopy(PyObject *_self, PyObject *_args)
3742n/a{
3743n/a PyObject *_res = NULL;
3744n/a CFDataRef _rv;
3745n/a unsigned char *bytes__in__;
3746n/a long bytes__len__;
3747n/a int bytes__in_len__;
3748n/a#ifndef CFDataCreateWithBytesNoCopy
3749n/a PyMac_PRECHECK(CFDataCreateWithBytesNoCopy);
3750n/a#endif
3751n/a if (!PyArg_ParseTuple(_args, "s#",
3752n/a &bytes__in__, &bytes__in_len__))
3753n/a return NULL;
3754n/a bytes__len__ = bytes__in_len__;
3755n/a _rv = CFDataCreateWithBytesNoCopy((CFAllocatorRef)NULL,
3756n/a bytes__in__, bytes__len__,
3757n/a (CFAllocatorRef)NULL);
3758n/a _res = Py_BuildValue("O&",
3759n/a CFDataRefObj_New, _rv);
3760n/a return _res;
3761n/a}
3762n/a
3763n/astatic PyObject *CF_CFDataCreateMutable(PyObject *_self, PyObject *_args)
3764n/a{
3765n/a PyObject *_res = NULL;
3766n/a CFMutableDataRef _rv;
3767n/a CFIndex capacity;
3768n/a#ifndef CFDataCreateMutable
3769n/a PyMac_PRECHECK(CFDataCreateMutable);
3770n/a#endif
3771n/a if (!PyArg_ParseTuple(_args, "l",
3772n/a &capacity))
3773n/a return NULL;
3774n/a _rv = CFDataCreateMutable((CFAllocatorRef)NULL,
3775n/a capacity);
3776n/a _res = Py_BuildValue("O&",
3777n/a CFMutableDataRefObj_New, _rv);
3778n/a return _res;
3779n/a}
3780n/a
3781n/astatic PyObject *CF_CFDataCreateMutableCopy(PyObject *_self, PyObject *_args)
3782n/a{
3783n/a PyObject *_res = NULL;
3784n/a CFMutableDataRef _rv;
3785n/a CFIndex capacity;
3786n/a CFDataRef theData;
3787n/a#ifndef CFDataCreateMutableCopy
3788n/a PyMac_PRECHECK(CFDataCreateMutableCopy);
3789n/a#endif
3790n/a if (!PyArg_ParseTuple(_args, "lO&",
3791n/a &capacity,
3792n/a CFDataRefObj_Convert, &theData))
3793n/a return NULL;
3794n/a _rv = CFDataCreateMutableCopy((CFAllocatorRef)NULL,
3795n/a capacity,
3796n/a theData);
3797n/a _res = Py_BuildValue("O&",
3798n/a CFMutableDataRefObj_New, _rv);
3799n/a return _res;
3800n/a}
3801n/a
3802n/astatic PyObject *CF_CFDictionaryGetTypeID(PyObject *_self, PyObject *_args)
3803n/a{
3804n/a PyObject *_res = NULL;
3805n/a CFTypeID _rv;
3806n/a#ifndef CFDictionaryGetTypeID
3807n/a PyMac_PRECHECK(CFDictionaryGetTypeID);
3808n/a#endif
3809n/a if (!PyArg_ParseTuple(_args, ""))
3810n/a return NULL;
3811n/a _rv = CFDictionaryGetTypeID();
3812n/a _res = Py_BuildValue("l",
3813n/a _rv);
3814n/a return _res;
3815n/a}
3816n/a
3817n/astatic PyObject *CF_CFDictionaryCreateMutable(PyObject *_self, PyObject *_args)
3818n/a{
3819n/a PyObject *_res = NULL;
3820n/a CFMutableDictionaryRef _rv;
3821n/a CFIndex capacity;
3822n/a#ifndef CFDictionaryCreateMutable
3823n/a PyMac_PRECHECK(CFDictionaryCreateMutable);
3824n/a#endif
3825n/a if (!PyArg_ParseTuple(_args, "l",
3826n/a &capacity))
3827n/a return NULL;
3828n/a _rv = CFDictionaryCreateMutable((CFAllocatorRef)NULL,
3829n/a capacity,
3830n/a &kCFTypeDictionaryKeyCallBacks,
3831n/a &kCFTypeDictionaryValueCallBacks);
3832n/a _res = Py_BuildValue("O&",
3833n/a CFMutableDictionaryRefObj_New, _rv);
3834n/a return _res;
3835n/a}
3836n/a
3837n/astatic PyObject *CF_CFDictionaryCreateMutableCopy(PyObject *_self, PyObject *_args)
3838n/a{
3839n/a PyObject *_res = NULL;
3840n/a CFMutableDictionaryRef _rv;
3841n/a CFIndex capacity;
3842n/a CFDictionaryRef theDict;
3843n/a#ifndef CFDictionaryCreateMutableCopy
3844n/a PyMac_PRECHECK(CFDictionaryCreateMutableCopy);
3845n/a#endif
3846n/a if (!PyArg_ParseTuple(_args, "lO&",
3847n/a &capacity,
3848n/a CFDictionaryRefObj_Convert, &theDict))
3849n/a return NULL;
3850n/a _rv = CFDictionaryCreateMutableCopy((CFAllocatorRef)NULL,
3851n/a capacity,
3852n/a theDict);
3853n/a _res = Py_BuildValue("O&",
3854n/a CFMutableDictionaryRefObj_New, _rv);
3855n/a return _res;
3856n/a}
3857n/a
3858n/astatic PyObject *CF_CFPreferencesCopyAppValue(PyObject *_self, PyObject *_args)
3859n/a{
3860n/a PyObject *_res = NULL;
3861n/a CFTypeRef _rv;
3862n/a CFStringRef key;
3863n/a CFStringRef applicationID;
3864n/a#ifndef CFPreferencesCopyAppValue
3865n/a PyMac_PRECHECK(CFPreferencesCopyAppValue);
3866n/a#endif
3867n/a if (!PyArg_ParseTuple(_args, "O&O&",
3868n/a CFStringRefObj_Convert, &key,
3869n/a CFStringRefObj_Convert, &applicationID))
3870n/a return NULL;
3871n/a _rv = CFPreferencesCopyAppValue(key,
3872n/a applicationID);
3873n/a _res = Py_BuildValue("O&",
3874n/a CFTypeRefObj_New, _rv);
3875n/a return _res;
3876n/a}
3877n/a
3878n/astatic PyObject *CF_CFPreferencesGetAppBooleanValue(PyObject *_self, PyObject *_args)
3879n/a{
3880n/a PyObject *_res = NULL;
3881n/a Boolean _rv;
3882n/a CFStringRef key;
3883n/a CFStringRef applicationID;
3884n/a Boolean keyExistsAndHasValidFormat;
3885n/a#ifndef CFPreferencesGetAppBooleanValue
3886n/a PyMac_PRECHECK(CFPreferencesGetAppBooleanValue);
3887n/a#endif
3888n/a if (!PyArg_ParseTuple(_args, "O&O&",
3889n/a CFStringRefObj_Convert, &key,
3890n/a CFStringRefObj_Convert, &applicationID))
3891n/a return NULL;
3892n/a _rv = CFPreferencesGetAppBooleanValue(key,
3893n/a applicationID,
3894n/a &keyExistsAndHasValidFormat);
3895n/a _res = Py_BuildValue("ll",
3896n/a _rv,
3897n/a keyExistsAndHasValidFormat);
3898n/a return _res;
3899n/a}
3900n/a
3901n/astatic PyObject *CF_CFPreferencesGetAppIntegerValue(PyObject *_self, PyObject *_args)
3902n/a{
3903n/a PyObject *_res = NULL;
3904n/a CFIndex _rv;
3905n/a CFStringRef key;
3906n/a CFStringRef applicationID;
3907n/a Boolean keyExistsAndHasValidFormat;
3908n/a#ifndef CFPreferencesGetAppIntegerValue
3909n/a PyMac_PRECHECK(CFPreferencesGetAppIntegerValue);
3910n/a#endif
3911n/a if (!PyArg_ParseTuple(_args, "O&O&",
3912n/a CFStringRefObj_Convert, &key,
3913n/a CFStringRefObj_Convert, &applicationID))
3914n/a return NULL;
3915n/a _rv = CFPreferencesGetAppIntegerValue(key,
3916n/a applicationID,
3917n/a &keyExistsAndHasValidFormat);
3918n/a _res = Py_BuildValue("ll",
3919n/a _rv,
3920n/a keyExistsAndHasValidFormat);
3921n/a return _res;
3922n/a}
3923n/a
3924n/astatic PyObject *CF_CFPreferencesSetAppValue(PyObject *_self, PyObject *_args)
3925n/a{
3926n/a PyObject *_res = NULL;
3927n/a CFStringRef key;
3928n/a CFTypeRef value;
3929n/a CFStringRef applicationID;
3930n/a#ifndef CFPreferencesSetAppValue
3931n/a PyMac_PRECHECK(CFPreferencesSetAppValue);
3932n/a#endif
3933n/a if (!PyArg_ParseTuple(_args, "O&O&O&",
3934n/a CFStringRefObj_Convert, &key,
3935n/a CFTypeRefObj_Convert, &value,
3936n/a CFStringRefObj_Convert, &applicationID))
3937n/a return NULL;
3938n/a CFPreferencesSetAppValue(key,
3939n/a value,
3940n/a applicationID);
3941n/a Py_INCREF(Py_None);
3942n/a _res = Py_None;
3943n/a return _res;
3944n/a}
3945n/a
3946n/astatic PyObject *CF_CFPreferencesAddSuitePreferencesToApp(PyObject *_self, PyObject *_args)
3947n/a{
3948n/a PyObject *_res = NULL;
3949n/a CFStringRef applicationID;
3950n/a CFStringRef suiteID;
3951n/a#ifndef CFPreferencesAddSuitePreferencesToApp
3952n/a PyMac_PRECHECK(CFPreferencesAddSuitePreferencesToApp);
3953n/a#endif
3954n/a if (!PyArg_ParseTuple(_args, "O&O&",
3955n/a CFStringRefObj_Convert, &applicationID,
3956n/a CFStringRefObj_Convert, &suiteID))
3957n/a return NULL;
3958n/a CFPreferencesAddSuitePreferencesToApp(applicationID,
3959n/a suiteID);
3960n/a Py_INCREF(Py_None);
3961n/a _res = Py_None;
3962n/a return _res;
3963n/a}
3964n/a
3965n/astatic PyObject *CF_CFPreferencesRemoveSuitePreferencesFromApp(PyObject *_self, PyObject *_args)
3966n/a{
3967n/a PyObject *_res = NULL;
3968n/a CFStringRef applicationID;
3969n/a CFStringRef suiteID;
3970n/a#ifndef CFPreferencesRemoveSuitePreferencesFromApp
3971n/a PyMac_PRECHECK(CFPreferencesRemoveSuitePreferencesFromApp);
3972n/a#endif
3973n/a if (!PyArg_ParseTuple(_args, "O&O&",
3974n/a CFStringRefObj_Convert, &applicationID,
3975n/a CFStringRefObj_Convert, &suiteID))
3976n/a return NULL;
3977n/a CFPreferencesRemoveSuitePreferencesFromApp(applicationID,
3978n/a suiteID);
3979n/a Py_INCREF(Py_None);
3980n/a _res = Py_None;
3981n/a return _res;
3982n/a}
3983n/a
3984n/astatic PyObject *CF_CFPreferencesAppSynchronize(PyObject *_self, PyObject *_args)
3985n/a{
3986n/a PyObject *_res = NULL;
3987n/a Boolean _rv;
3988n/a CFStringRef applicationID;
3989n/a#ifndef CFPreferencesAppSynchronize
3990n/a PyMac_PRECHECK(CFPreferencesAppSynchronize);
3991n/a#endif
3992n/a if (!PyArg_ParseTuple(_args, "O&",
3993n/a CFStringRefObj_Convert, &applicationID))
3994n/a return NULL;
3995n/a _rv = CFPreferencesAppSynchronize(applicationID);
3996n/a _res = Py_BuildValue("l",
3997n/a _rv);
3998n/a return _res;
3999n/a}
4000n/a
4001n/astatic PyObject *CF_CFPreferencesCopyValue(PyObject *_self, PyObject *_args)
4002n/a{
4003n/a PyObject *_res = NULL;
4004n/a CFTypeRef _rv;
4005n/a CFStringRef key;
4006n/a CFStringRef applicationID;
4007n/a CFStringRef userName;
4008n/a CFStringRef hostName;
4009n/a#ifndef CFPreferencesCopyValue
4010n/a PyMac_PRECHECK(CFPreferencesCopyValue);
4011n/a#endif
4012n/a if (!PyArg_ParseTuple(_args, "O&O&O&O&",
4013n/a CFStringRefObj_Convert, &key,
4014n/a CFStringRefObj_Convert, &applicationID,
4015n/a CFStringRefObj_Convert, &userName,
4016n/a CFStringRefObj_Convert, &hostName))
4017n/a return NULL;
4018n/a _rv = CFPreferencesCopyValue(key,
4019n/a applicationID,
4020n/a userName,
4021n/a hostName);
4022n/a _res = Py_BuildValue("O&",
4023n/a CFTypeRefObj_New, _rv);
4024n/a return _res;
4025n/a}
4026n/a
4027n/astatic PyObject *CF_CFPreferencesCopyMultiple(PyObject *_self, PyObject *_args)
4028n/a{
4029n/a PyObject *_res = NULL;
4030n/a CFDictionaryRef _rv;
4031n/a CFArrayRef keysToFetch;
4032n/a CFStringRef applicationID;
4033n/a CFStringRef userName;
4034n/a CFStringRef hostName;
4035n/a#ifndef CFPreferencesCopyMultiple
4036n/a PyMac_PRECHECK(CFPreferencesCopyMultiple);
4037n/a#endif
4038n/a if (!PyArg_ParseTuple(_args, "O&O&O&O&",
4039n/a CFArrayRefObj_Convert, &keysToFetch,
4040n/a CFStringRefObj_Convert, &applicationID,
4041n/a CFStringRefObj_Convert, &userName,
4042n/a CFStringRefObj_Convert, &hostName))
4043n/a return NULL;
4044n/a _rv = CFPreferencesCopyMultiple(keysToFetch,
4045n/a applicationID,
4046n/a userName,
4047n/a hostName);
4048n/a _res = Py_BuildValue("O&",
4049n/a CFDictionaryRefObj_New, _rv);
4050n/a return _res;
4051n/a}
4052n/a
4053n/astatic PyObject *CF_CFPreferencesSetValue(PyObject *_self, PyObject *_args)
4054n/a{
4055n/a PyObject *_res = NULL;
4056n/a CFStringRef key;
4057n/a CFTypeRef value;
4058n/a CFStringRef applicationID;
4059n/a CFStringRef userName;
4060n/a CFStringRef hostName;
4061n/a#ifndef CFPreferencesSetValue
4062n/a PyMac_PRECHECK(CFPreferencesSetValue);
4063n/a#endif
4064n/a if (!PyArg_ParseTuple(_args, "O&O&O&O&O&",
4065n/a CFStringRefObj_Convert, &key,
4066n/a CFTypeRefObj_Convert, &value,
4067n/a CFStringRefObj_Convert, &applicationID,
4068n/a CFStringRefObj_Convert, &userName,
4069n/a CFStringRefObj_Convert, &hostName))
4070n/a return NULL;
4071n/a CFPreferencesSetValue(key,
4072n/a value,
4073n/a applicationID,
4074n/a userName,
4075n/a hostName);
4076n/a Py_INCREF(Py_None);
4077n/a _res = Py_None;
4078n/a return _res;
4079n/a}
4080n/a
4081n/astatic PyObject *CF_CFPreferencesSetMultiple(PyObject *_self, PyObject *_args)
4082n/a{
4083n/a PyObject *_res = NULL;
4084n/a CFDictionaryRef keysToSet;
4085n/a CFArrayRef keysToRemove;
4086n/a CFStringRef applicationID;
4087n/a CFStringRef userName;
4088n/a CFStringRef hostName;
4089n/a#ifndef CFPreferencesSetMultiple
4090n/a PyMac_PRECHECK(CFPreferencesSetMultiple);
4091n/a#endif
4092n/a if (!PyArg_ParseTuple(_args, "O&O&O&O&O&",
4093n/a CFDictionaryRefObj_Convert, &keysToSet,
4094n/a CFArrayRefObj_Convert, &keysToRemove,
4095n/a CFStringRefObj_Convert, &applicationID,
4096n/a CFStringRefObj_Convert, &userName,
4097n/a CFStringRefObj_Convert, &hostName))
4098n/a return NULL;
4099n/a CFPreferencesSetMultiple(keysToSet,
4100n/a keysToRemove,
4101n/a applicationID,
4102n/a userName,
4103n/a hostName);
4104n/a Py_INCREF(Py_None);
4105n/a _res = Py_None;
4106n/a return _res;
4107n/a}
4108n/a
4109n/astatic PyObject *CF_CFPreferencesSynchronize(PyObject *_self, PyObject *_args)
4110n/a{
4111n/a PyObject *_res = NULL;
4112n/a Boolean _rv;
4113n/a CFStringRef applicationID;
4114n/a CFStringRef userName;
4115n/a CFStringRef hostName;
4116n/a#ifndef CFPreferencesSynchronize
4117n/a PyMac_PRECHECK(CFPreferencesSynchronize);
4118n/a#endif
4119n/a if (!PyArg_ParseTuple(_args, "O&O&O&",
4120n/a CFStringRefObj_Convert, &applicationID,
4121n/a CFStringRefObj_Convert, &userName,
4122n/a CFStringRefObj_Convert, &hostName))
4123n/a return NULL;
4124n/a _rv = CFPreferencesSynchronize(applicationID,
4125n/a userName,
4126n/a hostName);
4127n/a _res = Py_BuildValue("l",
4128n/a _rv);
4129n/a return _res;
4130n/a}
4131n/a
4132n/astatic PyObject *CF_CFPreferencesCopyApplicationList(PyObject *_self, PyObject *_args)
4133n/a{
4134n/a PyObject *_res = NULL;
4135n/a CFArrayRef _rv;
4136n/a CFStringRef userName;
4137n/a CFStringRef hostName;
4138n/a#ifndef CFPreferencesCopyApplicationList
4139n/a PyMac_PRECHECK(CFPreferencesCopyApplicationList);
4140n/a#endif
4141n/a if (!PyArg_ParseTuple(_args, "O&O&",
4142n/a CFStringRefObj_Convert, &userName,
4143n/a CFStringRefObj_Convert, &hostName))
4144n/a return NULL;
4145n/a _rv = CFPreferencesCopyApplicationList(userName,
4146n/a hostName);
4147n/a _res = Py_BuildValue("O&",
4148n/a CFArrayRefObj_New, _rv);
4149n/a return _res;
4150n/a}
4151n/a
4152n/astatic PyObject *CF_CFPreferencesCopyKeyList(PyObject *_self, PyObject *_args)
4153n/a