1fb299fa2Sopenharmony_ci/* 2fb299fa2Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3fb299fa2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb299fa2Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb299fa2Sopenharmony_ci * You may obtain a copy of the License at 6fb299fa2Sopenharmony_ci * 7fb299fa2Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb299fa2Sopenharmony_ci * 9fb299fa2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb299fa2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb299fa2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb299fa2Sopenharmony_ci * See the License for the specific language governing permissions and 13fb299fa2Sopenharmony_ci * limitations under the License. 14fb299fa2Sopenharmony_ci */ 15fb299fa2Sopenharmony_ci#ifndef UPDATER_COMMAND_PROCESS_H 16fb299fa2Sopenharmony_ci#define UPDATER_COMMAND_PROCESS_H 17fb299fa2Sopenharmony_ci 18fb299fa2Sopenharmony_ci#include "applypatch/command.h" 19fb299fa2Sopenharmony_ci#include "applypatch/command_function.h" 20fb299fa2Sopenharmony_ci 21fb299fa2Sopenharmony_cinamespace Updater { 22fb299fa2Sopenharmony_ciclass AbortCommandFn : public CommandFunction { 23fb299fa2Sopenharmony_cipublic: 24fb299fa2Sopenharmony_ci AbortCommandFn() {} 25fb299fa2Sopenharmony_ci ~AbortCommandFn() override {} 26fb299fa2Sopenharmony_ci CommandResult Execute(const Command ¶ms) override; 27fb299fa2Sopenharmony_ci}; 28fb299fa2Sopenharmony_ci 29fb299fa2Sopenharmony_ciclass NewCommandFn : public CommandFunction { 30fb299fa2Sopenharmony_cipublic: 31fb299fa2Sopenharmony_ci NewCommandFn() {} 32fb299fa2Sopenharmony_ci ~NewCommandFn() override {} 33fb299fa2Sopenharmony_ci CommandResult Execute(const Command ¶ms) override; 34fb299fa2Sopenharmony_ci}; 35fb299fa2Sopenharmony_ci 36fb299fa2Sopenharmony_ciclass ZeroAndEraseCommandFn : public CommandFunction { 37fb299fa2Sopenharmony_cipublic: 38fb299fa2Sopenharmony_ci ZeroAndEraseCommandFn() {} 39fb299fa2Sopenharmony_ci ~ZeroAndEraseCommandFn() override {} 40fb299fa2Sopenharmony_ci CommandResult Execute(const Command ¶ms) override; 41fb299fa2Sopenharmony_ci}; 42fb299fa2Sopenharmony_ci 43fb299fa2Sopenharmony_ciclass FreeCommandFn : public CommandFunction { 44fb299fa2Sopenharmony_cipublic: 45fb299fa2Sopenharmony_ci FreeCommandFn() {} 46fb299fa2Sopenharmony_ci ~FreeCommandFn() override {} 47fb299fa2Sopenharmony_ci CommandResult Execute(const Command ¶ms) override; 48fb299fa2Sopenharmony_ci}; 49fb299fa2Sopenharmony_ci 50fb299fa2Sopenharmony_ciclass StashCommandFn : public CommandFunction { 51fb299fa2Sopenharmony_cipublic: 52fb299fa2Sopenharmony_ci StashCommandFn() {} 53fb299fa2Sopenharmony_ci ~StashCommandFn() override {} 54fb299fa2Sopenharmony_ci CommandResult Execute(const Command ¶ms) override; 55fb299fa2Sopenharmony_ci}; 56fb299fa2Sopenharmony_ci 57fb299fa2Sopenharmony_ciclass DiffAndMoveCommandFn : public CommandFunction { 58fb299fa2Sopenharmony_cipublic: 59fb299fa2Sopenharmony_ci DiffAndMoveCommandFn() {} 60fb299fa2Sopenharmony_ci ~DiffAndMoveCommandFn() override {} 61fb299fa2Sopenharmony_ci CommandResult Execute(const Command ¶ms) override; 62fb299fa2Sopenharmony_ci virtual int32_t WriteDiffToBlock(const Command ¶ms, std::vector<uint8_t> &srcBuffer, 63fb299fa2Sopenharmony_ci uint8_t *patchBuffer, size_t patchLength, BlockSet &targetBlock); 64fb299fa2Sopenharmony_ci}; 65fb299fa2Sopenharmony_ci} 66fb299fa2Sopenharmony_ci#endif // UPDATER_COMMAND_PROCESS_H 67