View Source grisp_updater_system behaviour (grisp_updater v2.1.0)

Summary

Types

-type system_id() :: non_neg_integer().

Callbacks

-callback system_cancel_update(State :: term()) -> {ok, State :: term()}.
Link to this callback

system_get_global_target/1

View Source
-callback system_get_global_target(State :: term()) -> GlobalTarget :: target().
-callback system_get_systems(State :: term()) ->
                                {BootSysId :: system_id() | removable,
                                 ValidatedSysId :: system_id(),
                                 NextSysId :: system_id()}.
Link to this callback

system_get_updatable/1

View Source (optional)
-callback system_get_updatable(State :: term()) ->
                                  {ok, SysId :: system_id(), SystemTarget :: target()} |
                                  {error, Reason :: term}.
-callback system_init(Opts :: map()) -> {ok, State :: term()} | {error, term()}.
Link to this callback

system_object_updated/3

View Source (optional)
-callback system_object_updated(State :: term(),
                                Object ::
                                    #object{type :: atom(),
                                            product :: undefined | binary(),
                                            version :: undefined | binary(),
                                            desc :: undefined | binary(),
                                            target :: target_spec(),
                                            blocks ::
                                                [#block{id :: non_neg_integer(),
                                                        data_offset :: integer(),
                                                        data_size :: non_neg_integer(),
                                                        data_crc :: integer(),
                                                        data_hash_type :: atom(),
                                                        data_hash_data :: binary(),
                                                        encoding :: block_encoding()}],
                                            block_count :: non_neg_integer(),
                                            data_size :: non_neg_integer(),
                                            block_size :: non_neg_integer()},
                                Target ::
                                    #target{device :: binary(),
                                            offset :: non_neg_integer(),
                                            size :: undefined | non_neg_integer(),
                                            total :: undefined | non_neg_integer()}) ->
                                   {ok, State :: term()} | {error, term()}.
Link to this callback

system_prepare_target/4

View Source (optional)
-callback system_prepare_target(State :: term(),
                                SysId :: system_id(),
                                SysTarget :: target(),
                                Spec :: target_spec()) ->
                                   {ok, Target :: target()}.
-callback system_prepare_update(State :: term(), SysId :: system_id()) ->
                                   {ok, State :: term()} | {error, term()}.
-callback system_set_updated(State :: term(), SysId :: system_id()) ->
                                {ok, State :: term()} | {error, term()}.
-callback system_terminate(State :: term(), Reason :: term()) -> ok.
Link to this callback

system_updated/1

View Source (optional)
-callback system_updated(State :: term()) -> {ok, State :: term()} | {error, term()}.
-callback system_validate(State :: term()) -> {ok, State :: term()} | {error, term()}.