32#define _Class _URLSessionDataTask
48#pragma mark - URLSessionTask
50#define CURL_WRITEFUNC_ABORT 0
59 const uint8_t *bytes = (uint8_t *)
data;
60 const size_t bytesReceived = size * count;
62 if (this->data == NULL) {
68 this->urlSessionTask.bytesReceived += bytesReceived;
80 curl_easy_setopt(self->locals.
handle, CURLOPT_WRITEDATA, self);
83#pragma mark - Class lifecycle
105 .name =
"URLSessionDataTask",
109 .interfaceSize =
sizeof(URLSessionDataTaskInterface),
ident release(ident obj)
Atomically decrement the given Object's reference count. If the resulting reference count is 0,...
Class * _initialize(const ClassDef *def)
Initializes the given Class.
#define alloc(type)
Allocate and initialize and instance of type.
#define super(type, obj, method,...)
void * ident
The identity type, similar to Objective-C id.
static size_t writeFunction(char *data, size_t size, size_t count, ident self)
The CURLOPT_WRITEFUNCTION callback.
static void initialize(Class *clazz)
Use data tasks to send and receive Data in-memory.
#define do_once(once, block)
Executes the given block at most one time.
ClassDefs are passed to _initialize via an archetype to initialize a Class.
The runtime representation of a Class.
ident interface
The interface of the Class.
Condition * init(Condition *self)
Initializes this Condition.
MutableData * data(void)
Returns a new MutableData.
void appendBytes(MutableData *self, const uint8_t *bytes, size_t length)
Appends the given bytes to this Data.
Object is the root Class of The Objectively Class hierarchy.
void dealloc(Object *self)
Frees all resources held by this Object.
Use data tasks to send and receive Data in-memory.
Class * _URLSessionDataTask(void)
The URLSessionDataTask archetype.
URL session tasks are handles to pending URL operations.
ident handle
The backing libcurl handle.
void setup(URLSessionTask *)
Sets up this task.
Class * _URLSessionTask(void)
The URLSessionTask archetype.