Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. (ns onyx.peer.serializer-test
  2. (:require [taoensso.nippy :as nippy])
  3. (:import [org.agrona.concurrent UnsafeBuffer]))
  4.  
  5. (deftype LazyVal [^UnsafeBuffer key-buffer ^UnsafeBuffer val-buffer val-cached])
  6.  
  7. (def vs (object-array [(->LazyVal (UnsafeBuffer. ^bytes (nippy/fast-freeze 5))
  8. (UnsafeBuffer. ^bytes (nippy/fast-freeze {:a :7}))
  9. nil)
  10. (->LazyVal (UnsafeBuffer. ^bytes (nippy/fast-freeze [:a :b]))
  11. (UnsafeBuffer. ^bytes (nippy/fast-freeze {:a :7}))
  12. nil)
  13. (->LazyVal (UnsafeBuffer. ^bytes (nippy/fast-freeze ["fff"]))
  14. (UnsafeBuffer. ^bytes (nippy/fast-freeze {:a :7}))
  15. nil)]))
  16.  
  17. (def m {5 {:a :7}
  18. [:a :b] {:a :7}
  19. ["fff"] {:a :7}})
  20.  
  21. (def szed (nippy/fast-freeze m))
  22.  
  23. (defn get-val [#^"[Lonyx.peer.serializer_test.LazyVal;" vs k]
  24. (let [kbs (UnsafeBuffer. ^bytes (nippy/fast-freeze k))
  25. cnt (alength vs)]
  26. (loop [i 0]
  27. (if-not (= i cnt)
  28. (let [lv ^onyx.peer.serializer_test.LazyVal (aget vs i)]
  29. (if (zero? (.compareTo kbs (.key_buffer lv)))
  30. (nippy/fast-thaw (.byteArray ^UnsafeBuffer (.val_buffer lv)))
  31. (recur (unchecked-add-int i 1))))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement