197c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// 297c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// Copyright (C) 2012 The Android Open Source Project 397c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// 497c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// Licensed under the Apache License, Version 2.0 (the "License"); 597c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// you may not use this file except in compliance with the License. 697c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// You may obtain a copy of the License at 797c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// 897c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// http://www.apache.org/licenses/LICENSE-2.0 997c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// 1097c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// Unless required by applicable law or agreed to in writing, software 1197c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// distributed under the License is distributed on an "AS IS" BASIS, 1297c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1397c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// See the License for the specific language governing permissions and 1497c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// limitations under the License. 1597c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// 1697c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 1797c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin#ifndef UPDATE_ENGINE_CLIENT_LIBRARY_INCLUDE_STATUS_UPDATE_HANDLER_H_ 1897c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin#define UPDATE_ENGINE_CLIENT_LIBRARY_INCLUDE_STATUS_UPDATE_HANDLER_H_ 1997c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 2097c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin#include <string> 2197c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 2297c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin#include "update_engine/client.h" 2397c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin#include "update_engine/update_status.h" 2497c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 2597c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlinnamespace update_engine { 2697c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 2797c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// Handles update_engine status changes. An instance of this class can be 2897c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// registered with UpdateEngineClient and will respond to any update_engine 2997c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin// status changes. 3097c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlinclass StatusUpdateHandler { 3197c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin public: 3297c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin virtual ~StatusUpdateHandler() = default; 3397c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 3497c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin // Runs when we fail to register the handler due to an IPC error. 3597c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin virtual void IPCError(const std::string& error) = 0; 3697c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 3797c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin // Runs every time update_engine reports a status change. 3897c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin virtual void HandleStatusUpdate(int64_t last_checked_time, 3997c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin double progress, 4097c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin UpdateStatus current_operation, 4197c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin const std::string& new_version, 4297c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin int64_t new_size) = 0; 4397c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin}; 4497c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 4597c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin} // namespace update_engine 4697c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin 4797c870518ce1149b32966d98ebfe93f3eb5d1fefCasey Dahlin#endif // UPDATE_ENGINE_CLIENT_LIBRARY_INCLUDE_STATUS_UPDATE_HANDLER_H_ 48