std.lib.bin.buffer
buffer
added in 3.0
(buffer len-or-elems)(buffer len-or-elems {:keys [type direct endian convert wrap], :or {type :byte, direct false, endian +endian-native+, convert true, wrap false}})either creates or wraps a byte buffer of a given type
(buffer 10) => java.nio.ByteBuffer
(buffer 10 {:type :float :convert false}) => java.nio.ByteBuffer
(buffer 10 {:type :float :direct true}) => java.nio.FloatBuffer
buffer-convert
added in 3.0
(buffer-convert buff type)converts an nio ByteBuffer to another type
(buffer-convert (java.nio.ByteBuffer/allocate 8) :double) => java.nio.DoubleBuffer
buffer-create
added in 3.0
(buffer-create type elems length direct endian convert)buffer-get
added in 3.0
(buffer-get buff arr)(buffer-get buff arr type)buffer-primitive
added in 3.0
(buffer-primitive buff)(buffer-primitive buff tag)returns the corresponding type associated with the instance
(buffer-primitive (double-buffer 0) :class) => Double/TYPE
buffer-put
added in 3.0
(buffer-put buff arr)(buffer-put buff arr type)utility for putting arrays into buffers
(buffer-put (double-buffer 2) (double-array 1 2))
buffer-read
added in 3.0
(buffer-read buff)(buffer-read buff arr)reads primitive array from buffer
(def -buf- (buffer 4)) (def -out- (int-array 1))
(do (.put ^java.nio.ByteBuffer -buf- 3 (byte 1)) (buffer-read -buf- -out-) (first -out-)) => 1
buffer-type
added in 3.0
(buffer-type cls)(buffer-type cls tag)returns the corresponding type associated with the class
(buffer-type java.nio.FloatBuffer :type) => :float
(buffer-type java.nio.FloatBuffer :array-fn) => float-array
buffer-type-raw
(buffer-type-raw cls)(buffer-type-raw cls tag)helper function for std.lib.bin.buffer/buffer-type
buffer-write
added in 3.0
(buffer-write buff arr)writes primitive array to a buffer
(def ^java.nio.ByteBuffer -buf- (buffer 16)) (buffer-write -buf- (int-array 1 2 3 4))
(.get -buf- 3) (.get -buf- 7) (.get -buf- 11) (.get -buf- 15) => 1 2 3 4
byte-buffer
(byte-buffer len-or-elems)(byte-buffer len-or-elems {:keys [type direct endian convert], :as opts})byte-order
added in 3.0
(byte-order obj)converts keyword to ByteOrder
(byte-order :little) => java.nio.ByteOrder/LITTLE_ENDIAN
char-buffer
(char-buffer len-or-elems)(char-buffer len-or-elems {:keys [type direct endian convert], :as opts})create-buffer-functions
macro
added in 3.0
(create-buffer-functions types)creates functions for buffer types
(macroexpand-1 ’(create-buffer-functions (:byte)))
create-buffer-records
macro
added in 3.0
(create-buffer-records types)creates records for buffer types
(macroexpand-1 ’(create-buffer-records (Byte identity)))
double-buffer
(double-buffer len-or-elems)(double-buffer len-or-elems {:keys [type direct endian convert], :as opts})float-buffer
(float-buffer len-or-elems)(float-buffer len-or-elems {:keys [type direct endian convert], :as opts})int-buffer
(int-buffer len-or-elems)(int-buffer len-or-elems {:keys [type direct endian convert], :as opts})long-buffer
(long-buffer len-or-elems)(long-buffer len-or-elems {:keys [type direct endian convert], :as opts})short-buffer
(short-buffer len-or-elems)(short-buffer len-or-elems {:keys [type direct endian convert], :as opts})