Add missed Terminal::Complete source files
This commit is contained in:
@@ -0,0 +1,30 @@
|
|||||||
|
#include "completeterminal.hpp"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace Parser;
|
||||||
|
|
||||||
|
string Terminal::Complete::act( const string &str )
|
||||||
|
{
|
||||||
|
for ( unsigned int i = 0; i < str.size(); i++ ) {
|
||||||
|
/* parse octet into up to three actions */
|
||||||
|
list<Action *> actions( parser.input( str[ i ] ) );
|
||||||
|
|
||||||
|
/* apply actions to terminal and delete them */
|
||||||
|
for ( list<Action *>::iterator it = actions.begin();
|
||||||
|
it != actions.end();
|
||||||
|
it++ ) {
|
||||||
|
Action *act = *it;
|
||||||
|
act->act_on_terminal( &terminal );
|
||||||
|
delete act;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return terminal.read_octets_to_host();
|
||||||
|
}
|
||||||
|
|
||||||
|
string Terminal::Complete::act( const Action *act )
|
||||||
|
{
|
||||||
|
/* apply action to terminal */
|
||||||
|
act->act_on_terminal( &terminal );
|
||||||
|
return terminal.read_octets_to_host();
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#ifndef COMPLETE_TERMINAL_HPP
|
||||||
|
#define COMPLETE_TERMINAL_HPP
|
||||||
|
|
||||||
|
#include "parser.hpp"
|
||||||
|
#include "terminal.hpp"
|
||||||
|
|
||||||
|
/* This class represents the complete terminal -- a UTF8Parser feeding Actions to an Emulator. */
|
||||||
|
|
||||||
|
namespace Terminal {
|
||||||
|
class Complete {
|
||||||
|
private:
|
||||||
|
Parser::UTF8Parser parser;
|
||||||
|
Terminal::Emulator terminal;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Complete( size_t width, size_t height ) : parser(), terminal( width, height ) {}
|
||||||
|
|
||||||
|
std::string act( const std::string &str );
|
||||||
|
std::string act( const Parser::Action *act );
|
||||||
|
|
||||||
|
std::string open( void ) { return terminal.open(); }
|
||||||
|
std::string close( void ) { return terminal.close(); }
|
||||||
|
|
||||||
|
const Framebuffer & get_fb( void ) { return terminal.get_fb(); }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user