Skip to content

Commit

Permalink
Merge pull request #7 from WickedShell/wickedshell/skip-input
Browse files Browse the repository at this point in the history
Add a helper for skipping input stream data
  • Loading branch information
peterschwarz authored Jul 18, 2017
2 parents dbd3a77 + bbdea3b commit 46c4dd3
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
2 changes: 1 addition & 1 deletion project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
:license {:name "Eclipse Public License - v 1.0"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[com.sparetimelabs/purejavacomm "1.0.0"]]
[com.sparetimelabs/purejavacomm "1.0.1"]]
:repositories [["javacomm" "http://www.sparetimelabs.com/maven2"]]
:profiles {:1.6 {:dependencies [[org.clojure/clojure "1.6.0"]]}
:1.7 {:dependencies [[org.clojure/clojure "1.7.0"]]}}
Expand Down
10 changes: 7 additions & 3 deletions src/serial/core.clj
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,11 @@
(write-bytes port (to-bytes x)))
port)

(defn skip-input!
"Skips a specified amount of buffered input data."
([^Port port] (skip-input! port (.available ^InputStream (.in-stream port))))
([^Port port ^long to-drop]
(.skip ^InputStream (.in-stream port) to-drop)))

(defn listen!
"Register a function to be called for every byte received on the specified port.
Expand All @@ -133,9 +138,8 @@
(.getEventType event))
(handler in-stream))))]

(if skip-buffered?
(let [to-drop (.available in-stream)]
(.skip in-stream to-drop)))
(when skip-buffered?
(skip-input! port))

(.addEventListener raw-port listener)
(.notifyOnDataAvailable raw-port true))))
Expand Down

0 comments on commit 46c4dd3

Please sign in to comment.