Source
(defmethod db-get ((db db-ext) key &key data txn
consume consume-wait
set-recno
multiple rmw
not-found)
(with-cbuffer key-buffer
(funcall (buf-writer db) key key-buffer)
(let ((data-buffer (when data (alloc-cbuffer))))
(unwind-protect
(let* ((buf (db-get (if (is-secondary db)
(db-sec-handle db)
(db-handle db))
key-buffer
:data (when data
(funcall (buf-writer db)
data
data-buffer)
data-buffer)
:txn txn
:consume consume :consume-wait consume-wait
:set-recno set-recno
:multiple multiple :rmw rmw
:not-found not-found))
(ret))
(unwind-protect
(setf ret (funcall (buf-reader db) buf))
(free-cbuffer buf))
ret)
(when data-buffer
(free-cbuffer data-buffer))))))
Source Context