/* Copyright 2013 to 2017 TeamWin TWRP is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. TWRP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with TWRP. If not, see . */ #ifndef _TWRPBACK_HPP #define _TWRPBACK_HPP #include class twrpback { public: int adbd_fd; // adbd data stream twrpback(void); virtual ~twrpback(void); int backup(std::string command); // adb backup stream int restore(void); // adb restore stream void adblogwrite(std::string writemsg); // adb debugging log function void createFifos(void); // create fifos needed for adb backup void closeFifos(void); // close created fifos void streamFileForTWRP(void); // stream file to twrp via bu void setStreamFileName(std::string fn); // tell adb backup what file to load on storage void threadStream(void); // thread bu for streaming private: int read_fd; // ors input fd int write_fd; // ors operation fd int ors_fd; // ors output fd int adb_control_twrp_fd; // fd for bu to twrp communication int adb_control_bu_fd; // fd for twrp to bu communication int adb_read_fd; // adb read data stream int adb_write_fd; // adb write data stream bool firstPart; // first partition in the stream FILE *adbd_fp; // file pointer for adb stream char cmd[512]; // store result of commands char operation[512]; // operation to send to ors std::ofstream adblogfile; // adb stream log file std::string streamFn; typedef void (twrpback::*ThreadPtr)(void); typedef void* (*PThreadPtr)(void *); void adbloginit(void); // setup adb log stream file void close_backup_fds(); // close backup resources void close_restore_fds(); // close restore resources }; #endif // _TWRPBACK_HPP