grisp_updater_storage behaviour (grisp_updater v2.3.0)

View Source

Summary

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

target()

-type target() ::
          #target{device :: binary(),
                  offset :: non_neg_integer(),
                  size :: undefined | non_neg_integer(),
                  total :: undefined | non_neg_integer()}.

Callbacks

storage_close(State, Descriptor)

-callback storage_close(State :: term(), Descriptor :: term()) -> {ok, State :: term()}.

Close the Descriptor.

storage_init(Opts)

-callback storage_init(Opts :: map()) -> {ok, State :: term()} | {error, term()}.

Initialize storage backend. Set up any resources and return State.

storage_open(State, Device)

-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.

storage_prepare(State, Target, ObjSize)

-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.

storage_read(State, Descriptor, Offset, Size)

-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.

storage_terminate(State, Reason)

-callback storage_terminate(State :: term(), Reason :: term()) -> ok.

Termination hook for cleanup.

storage_write(State, Descriptor, Offset, Data)

-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.

Functions

digest(Type, Device, Seek, Size)

handle_call/3

handle_cast(Request, State)

handle_info(Info, State)

init/1

prepare(Target, ObjSize)

read(Device, Seek, Size)

start_link(Opts)

terminate(Reason, State)

write(Device, Seek, Data)