sample/libcurl: add body and writ_data function/callbacks

This commit is contained in:
Alvaro Miranda Aguilera
2018-01-25 12:29:41 +01:00
committed by Nikolay Igotti
parent 532461647a
commit 0b9f5beed8
2 changed files with 15 additions and 9 deletions
@@ -14,10 +14,13 @@ class CUrl(val url: String) {
val header = staticCFunction(::header_callback) val header = staticCFunction(::header_callback)
curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, header) curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, header)
curl_easy_setopt(curl, CURLOPT_HEADERDATA, stableRef.asCPointer()) curl_easy_setopt(curl, CURLOPT_HEADERDATA, stableRef.asCPointer())
val write_data = staticCFunction(::write_callback)
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data)
curl_easy_setopt(curl, CURLOPT_WRITEDATA, stableRef.asCPointer())
} }
val header = Event<String>() val header = Event<String>()
val data = Event<String>() val body = Event<String>()
fun nobody(){ fun nobody(){
curl_easy_setopt(curl, CURLOPT_NOBODY, 1L) curl_easy_setopt(curl, CURLOPT_NOBODY, 1L)
@@ -50,13 +53,14 @@ fun header_callback(buffer: CPointer<ByteVar>?, size: size_t, nitems: size_t, us
return size * nitems return size * nitems
} }
/*
fun write_callback(buffer: COpaquePointer?, size: size_t, nitems: size_t, userdata: COpaquePointer?): size_t { fun write_callback(buffer: CPointer<ByteVar>?, size: size_t, nitems: size_t, userdata: COpaquePointer?): size_t {
if (buffer == null) return 0 if (buffer == null) return 0
val data = buffer.toKString((size * nitems).toInt()).trim()
if (userdata != null) { if (userdata != null) {
val curl = userdata.asStableRef<CUrl>().get() val curl = userdata.asStableRef<CUrl>().get()
curl.data(buffer.) curl.body(data)
} }
return size * nitems return size * nitems
} }
*/
@@ -8,13 +8,15 @@ fun main(args: Array<String>) {
curl.header += { curl.header += {
println("[H] $it") println("[H] $it")
} }
curl.body += {
println("[B] $it")
}
curl.fetch() curl.fetch()
curl.close() curl.close()
/*
val write_data = staticCFunction(::write_data)
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
*/
} }
fun help() { fun help() {