-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCGDataConsumer.h
141 lines (112 loc) · 3.37 KB
/
CGDataConsumer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
File: CGDataConsumer.h
Contains: xxx put contents here xxx
Version: Technology: from CoreGraphics-70.root
Release: Universal Interfaces 3.4
Copyright: © 2000-2001 by Apple Computer, Inc., all rights reserved.
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
#ifndef __CGDATACONSUMER__
#define __CGDATACONSUMER__
#ifndef __CGBASE__
#include <CGBase.h>
#endif
#ifndef __CFURL__
#include <CFURL.h>
#endif
#if PRAGMA_ONCE
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_IMPORT
#pragma import on
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
typedef struct CGDataConsumer* CGDataConsumerRef;
typedef CALLBACK_API_C( size_t , CGPutBytesProcPtr )(void *info, const void *buffer, size_t count);
typedef CALLBACK_API_C( void , CGReleaseConsumerProcPtr )(void * info);
/* Callbacks for accessing data.
* `putBytes' copies `count' bytes from `buffer' to the consumer, and
* returns the number of bytes copied. It should return 0 if no more data
* can be written to the consumer.
* `releaseConsumer', if non-NULL, is called when the consumer is freed. */
struct CGDataConsumerCallbacks {
CGPutBytesProcPtr putBytes;
CGReleaseConsumerProcPtr releaseConsumer;
};
typedef struct CGDataConsumerCallbacks CGDataConsumerCallbacks;
/* Create a data consumer using `callbacks' to handle the data. `info' is
* passed to each of the callback functions. */
/*
* CGDataConsumerCreate()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 or later
*/
EXTERN_API_C( CGDataConsumerRef )
CGDataConsumerCreate(
void * info,
const CGDataConsumerCallbacks * callbacks);
/* Create a data consumer which writes data to `url'. */
/*
* CGDataConsumerCreateWithURL()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 or later
*/
EXTERN_API_C( CGDataConsumerRef )
CGDataConsumerCreateWithURL(CFURLRef url);
/* Increment the retain count of `consumer' and return it. All data
* consumers are created with an initial retain count of 1. */
/*
* CGDataConsumerRetain()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 or later
*/
EXTERN_API_C( CGDataConsumerRef )
CGDataConsumerRetain(CGDataConsumerRef consumer);
/* Decrement the retain count of `consumer'. If the retain count reaches
* 0, then release it and any associated resources. */
/*
* CGDataConsumerRelease()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 or later
*/
EXTERN_API_C( void )
CGDataConsumerRelease(CGDataConsumerRef consumer);
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#ifdef __cplusplus
}
#endif
#endif /* __CGDATACONSUMER__ */