Maintain local terminal state explicitly

This commit is contained in:
Keith Winstein
2011-09-30 14:24:47 -04:00
parent 5aff42b0aa
commit ad8cb166de
2 changed files with 6 additions and 1 deletions
+2
View File
@@ -72,6 +72,8 @@ namespace Network {
uint64_t get_remote_state_num( void ) { return received_states.back().num; } uint64_t get_remote_state_num( void ) { return received_states.back().num; }
const TimestampedState<RemoteState> & get_latest_remote_state( void ) const { return received_states.back(); }
int fd( void ) { return connection.fd(); } int fd( void ) { return connection.fd(); }
void set_verbose( void ) { sender.set_verbose(); verbose = true; } void set_verbose( void ) { sender.set_verbose(); verbose = true; }
+4 -1
View File
@@ -121,8 +121,11 @@ bool STMClient::process_network_input( void )
/* is a new frame available from the terminal? */ /* is a new frame available from the terminal? */
if ( network->get_remote_state_num() != last_remote_num ) { 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() ); swrite( STDOUT_FILENO, diff.data(), diff.size() );
*local_terminal = network->get_latest_remote_state().state;
} }
return true; return true;