Skip to content

Commit

Permalink
incremented the clj-curl version, added more functions to mime namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
lsevero committed Sep 29, 2019
1 parent de5eb79 commit 1046643
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 5 deletions.
2 changes: 1 addition & 1 deletion project.clj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
(defproject clj-curl "0.1.0"
(defproject clj-curl "0.2.0"
:description "curl for clojure"
:url "https://github.com/lsevero/clj-curl"
:license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
Expand Down
1 change: 0 additions & 1 deletion src/clj_curl/easy.clj
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@
^Integer
[^Pointer curl ^Integer opt param]
(if (= (type param) clojure.lang.PersistentVector)
;nil
(let [slist (Memory. NativeLong/SIZE)]
(do
(doseq [s param]
Expand Down
42 changes: 39 additions & 3 deletions src/clj_curl/mime.clj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(ns clj-curl.mime
(:refer-clojure :exclude (name type))
(:require [clj-curl.easy :refer [libcurl]]
[com.sun.jna Pointer]))
(:require [clj-curl.easy :refer [libcurl slist-append slist-free-all]]
[com.sun.jna Pointer Memory NativeLong]))

(defn init
"https://curl.haxx.se/libcurl/c/curl_mime_init.html"
Expand Down Expand Up @@ -41,5 +41,41 @@
[^Pointer part ^String filename]
(.invoke (.getFunction libcurl "curl_mime_filename") Integer (to-array [part filename])))

;TODO curl_mime_headers, curl_mime_subparts, curl_mime_free, curl_mime_data_cb, curl_mime_encoder, curl_mime_filedata
(defn free
"https://curl.haxx.se/libcurl/c/curl_mime_free.html"
[^Pointer mime]
(.invoke (.getFunction libcurl "curl_mime_free") Void (to-array [mime])))

(defn subparts
"https://curl.haxx.se/libcurl/c/curl_mime_subparts.html"
^Integer
[^Pointer part ^Pointer subparts]
(.invoke (.getFunction libcurl "curl_mime_subparts") Integer (to-array [part subparts])))

(defn hearders
"https://curl.haxx.se/libcurl/c/curl_mime_headers.html"
^Integer
[^Pointer part headers take-ownership]
(if (= clojure.lang.PersistentVector (type headers))
(let [slist (Memory. NativeLong/SIZE)]
(doseq [s param]
(slist-append slist s))
(let [ret (.invoke (.getFunction libcurl "curl_mime_headers") Integer (to-array [part headers take-ownership]))]
(slist-free-all slist)
ret))
(throw (Exception. "headers should be a vector."))))

(defn filedata
"https://curl.haxx.se/libcurl/c/curl_mime_filedata.html"
^Integer
[^Pointer part ^String filename]
(.invoke (.getFunction libcurl "curl_mime_filedata") Integer (to-array [part filename])))

(defn encoder
"https://curl.haxx.se/libcurl/c/curl_mime_encoder.html"
^Integer
[^Pointer part ^String encoding]
(.invoke (.getFunction libcurl "curl_mime_encoder") Integer (to-array [part encoding])))

;TODO curl_mime_data_cb

0 comments on commit 1046643

Please sign in to comment.