grisp_updater_storage behaviour (grisp_updater v2.3.0)
View SourceSummary
Callbacks
Close the Descriptor.
Initialize storage backend. Set up any resources and return State.
Open a device or file and return an opaque Descriptor for read/write.
Prepare the target before writing an object of given size. May pre-size files or verify device availability.
Read data at an absolute offset. May return <<>> on EOF.
Termination hook for cleanup.
Write data at an absolute offset from beginning of device/file.
Types
-type target() :: #target{device :: binary(), offset :: non_neg_integer(), size :: undefined | non_neg_integer(), total :: undefined | non_neg_integer()}.
Callbacks
Close the Descriptor.
Initialize storage backend. Set up any resources and return State.
-callback storage_open(State :: term(), Device :: binary()) -> {ok, Descriptor :: term(), State :: term()} | {error, term()}.
Open a device or file and return an opaque Descriptor for read/write.
-callback storage_prepare(State :: term(), Target :: target(), ObjSize :: non_neg_integer()) -> ok | {error, term()}.
Prepare the target before writing an object of given size. May pre-size files or verify device availability.
-callback storage_read(State :: term(), Descriptor :: term(), Offset :: non_neg_integer(), Size :: non_neg_integer()) -> {ok, Data :: binary(), State :: term()} | {error, term()}.
Read data at an absolute offset. May return <<>> on EOF.
Termination hook for cleanup.
-callback storage_write(State :: term(), Descriptor :: term(), Offset :: non_neg_integer(), Data :: iolist()) -> {ok, State :: term()} | {error, term()}.
Write data at an absolute offset from beginning of device/file.