2 * Copyright (C) 2016 Simon Fels <morphis@gravedo.de>
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 3, as published
6 * by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranties of
10 * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11 * PURPOSE. See the GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License along
14 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 #include "anbox/qemu//bootanimation_message_processor.h"
19 #include "anbox/logger.h"
25 BootAnimationMessageProcessor::BootAnimationMessageProcessor(
26 const std::shared_ptr<network::SocketMessenger> &messenger,
27 const std::string &icon_path)
28 : QemudMessageProcessor(messenger), icon_path_(icon_path) {}
30 BootAnimationMessageProcessor::~BootAnimationMessageProcessor() {}
32 void BootAnimationMessageProcessor::handle_command(const std::string &command) {
33 if (command == "retrieve-icon") retrieve_icon();
36 void BootAnimationMessageProcessor::retrieve_icon() {
37 std::ifstream icon_file(icon_path_, std::ifstream::binary);
38 std::array<char, 1024> buffer;
40 while (icon_file.read(buffer.data(), buffer.size())) {
41 const auto bytes_read = icon_file.gcount();
42 messenger_->send(buffer.data(), bytes_read);
43 DEBUG("Sending %d bytes", bytes_read);