How do I call this tamplte function?
Ali Çehreli
acehreli at yahoo.com
Tue Jun 26 18:01:55 UTC 2018
On 06/26/2018 10:37 AM, Rib wrote:
> to get get() from std.net.curl return a ubyte[] and use my http
> instance, all those failed:
>
> string link = "http://...";
> auto client = HTTP();
> // set some client attributes...
> auto fileContents = get!(AutoProtocol, ubyte)(link, client);
> auto fileContents = get!(ubyte)(link, client);
> auto fileContents = get!(client, ubyte)(link, client);
>
> I still didn't "get" D templates.
This worked for me:
import std.net.curl;
import std.stdio;
import std.functional;
void myHeaderReceivingFunction(const(char[]) key, const(char[]) value) {
writefln("Received header: %s = %s", key, value);
}
size_t myDataReceivingFunction(ubyte[] data) {
writefln("Received data; first part: %s", data[0..10]);
return data.length;
}
void main() {
auto client = HTTP("http://dlang.org");
// If you don't have an actual delegate, you can use
std.functional.toDelegate:
client.onReceiveHeader = (&myHeaderReceivingFunction).toDelegate;
// ... or you can create a delegate with a lambda on the fly:
client.onReceive = (ubyte[] data) { return
myDataReceivingFunction(data); };
client.perform();
}
Ali
More information about the Digitalmars-d-learn
mailing list