CURL review request
jdrewsen
jdrewsen at nospam.com
Tue Aug 16 11:23:19 PDT 2011
Den 16-08-2011 15:13, dsimcha skrev:
> On 8/16/2011 7:48 AM, Jonas Drewsen wrote:
>> Hi all,
>>
>> This is a review request for the curl wrapper. Please read the "known
>> issues" in the top of the source file and if possible suggest a solution.
>>
>> We also need somebody for running the review process. Anyone?
>>
>> Code:
>> https://github.com/jcd/phobos/blob/curl-wrapper/etc/curl.d
>> Docs:
>> http://freeze.steamwinter.com/D/web/phobos/etc_curl.html
>>
>> Demolish!
>>
>> /Jonas
>
> From a quick look, this looks very well thought out. I'll review it
> more thoroughly when I have more time. A few questions/comments from a
> quick look at the docs:
>
> Does the async stuff use D threads, or does Curl have its own async API?
It uses the spawn method from std.concurrency which uses D threads i think.
> In your examples for postData, you have onReceive a ubyte[] and write it
> out to console. Did you mean to cast this to some kind of string?
Not really. It is just an example and writeln will output a byte array
just fine.
> For onReceive, what's the purpose of the return value?
To specify the number of bytes that have been handled. If this is less
that the entire buffer the rest of the request will fail. Additionally
both the onSend and onReceive callbacks can return CURL_WRITEFUNC_PAUSE
pr CURL_READFUNC_PAUSE to pause the transfer. And onSend can return
CURL_READFUNC_ABORT to abort as well. I see that the is missing from the
docs... will add.
>
> If/when this module makes it into Phobos, are we going to start
> including a libcurl binary with DMD distributions so that std.curl feels
> truly **standard** and requires zero extra configuration?
I think that would be convenient but don't believe it is the correct
thing to do. In my opinion D modules that are not pure D or wrapping a
system library (which libcurl is definitely not) should be the only ones
allowed in the std package. Other wrappers in phobos should be in the
etc package and the lib binaries should not be included.
Just how I feel about it though. Anyone who disagrees?
/Jonas
More information about the Digitalmars-d
mailing list