1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

updated func and tonlib

This commit is contained in:
ton 2020-02-15 20:03:17 +04:00
parent 493ae2410c
commit a73d202ba2
50 changed files with 1340 additions and 271 deletions

View file

@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public License
along with TON Blockchain Library. If not, see <http://www.gnu.org/licenses/>.
Copyright 2017-2019 Telegram Systems LLP
Copyright 2017-2020 Telegram Systems LLP
*/
#pragma once
@ -29,8 +29,10 @@ namespace td {
class TerminalIOOutputter {
public:
static const size_t BUFFER_SIZE = 128 * 1024;
TerminalIOOutputter()
: buffer_(new char[BUFFER_SIZE]), sb_(std::make_unique<StringBuilder>(td::MutableSlice{buffer_, BUFFER_SIZE})) {
TerminalIOOutputter(bool is_err)
: buffer_(new char[BUFFER_SIZE])
, is_err_(is_err)
, sb_(std::make_unique<StringBuilder>(td::MutableSlice{buffer_, BUFFER_SIZE})) {
}
TerminalIOOutputter(TerminalIOOutputter &&X) = default;
@ -58,6 +60,7 @@ class TerminalIOOutputter {
private:
char *buffer_;
bool is_err_;
std::unique_ptr<StringBuilder> sb_;
};
@ -75,11 +78,18 @@ class TerminalIO : public actor::Actor {
virtual void update_callback(std::unique_ptr<Callback> callback) = 0;
static void output(std::string line);
static void output(td::Slice slice);
static void output_stderr(std::string line);
static void output_stderr(td::Slice slice);
static TerminalIOOutputter out() {
return TerminalIOOutputter{};
return TerminalIOOutputter{false};
}
static TerminalIOOutputter err() {
return TerminalIOOutputter{true};
}
virtual void output_line(std::string line) = 0;
virtual void output_line_stderr(std::string line) = 0;
virtual void set_log_interface() = 0;
virtual bool readline_used() const = 0;
static td::actor::ActorOwn<TerminalIO> create(std::string prompt, bool use_readline,
std::unique_ptr<Callback> callback);