From ad8cb166de8b546fed5ad6afe17d429a6fd25ce2 Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Fri, 30 Sep 2011 14:24:47 -0400 Subject: [PATCH] Maintain local terminal state explicitly --- networktransport.hpp | 2 ++ stmclient.cpp | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/networktransport.hpp b/networktransport.hpp index c11ae09..2581686 100644 --- a/networktransport.hpp +++ b/networktransport.hpp @@ -72,6 +72,8 @@ namespace Network { uint64_t get_remote_state_num( void ) { return received_states.back().num; } + const TimestampedState & get_latest_remote_state( void ) const { return received_states.back(); } + int fd( void ) { return connection.fd(); } void set_verbose( void ) { sender.set_verbose(); verbose = true; } diff --git a/stmclient.cpp b/stmclient.cpp index cf4b094..9c0cdc0 100644 --- a/stmclient.cpp +++ b/stmclient.cpp @@ -121,8 +121,11 @@ bool STMClient::process_network_input( void ) /* is a new frame available from the terminal? */ if ( network->get_remote_state_num() != last_remote_num ) { - string diff = network->get_remote_diff(); + string diff = Terminal::Display::new_frame( true, + local_terminal->get_fb(), + network->get_latest_remote_state().state.get_fb() ); swrite( STDOUT_FILENO, diff.data(), diff.size() ); + *local_terminal = network->get_latest_remote_state().state; } return true;