diff options
Diffstat (limited to 'yhttpd/src/ncur')
| -rw-r--r-- | yhttpd/src/ncur/menu.cpp | 117 | ||||
| -rw-r--r-- | yhttpd/src/ncur/menu.h | 39 | ||||
| -rw-r--r-- | yhttpd/src/ncur/ncur.cpp | 259 | ||||
| -rw-r--r-- | yhttpd/src/ncur/ncur.h | 51 |
4 files changed, 0 insertions, 466 deletions
diff --git a/yhttpd/src/ncur/menu.cpp b/yhttpd/src/ncur/menu.cpp deleted file mode 100644 index dcacc9b..0000000 --- a/yhttpd/src/ncur/menu.cpp +++ /dev/null @@ -1,117 +0,0 @@ - -#include "menu.h" - -#ifdef NCURSES - -#ifndef MENU_CPP -#define MENU_CPP - -using namespace std; - -menu::menu( int i_startx, int i_starty, int i_width, int i_height, char *c_header, char **choices, int i_numchoices, const chtype ch ) -{ - this->i_startx = i_startx; - this->i_starty = i_starty; - this->i_height = i_height; - this->i_width = i_width; - this->c_header = c_header; - this->choices = choices; - this->i_numchoices = i_numchoices; - - initialize( ch ); -} - -menu::~menu() -{ - /* - wborder(win, ' ', ' ', ' ',' ',' ',' ',' ',' '); - wrefresh(win); - delwin(win); - */ -} - -void -menu::initialize( const chtype ch ) -{ - this->i_highlight = 1; - this->i_choice = 0; - - win = newwin( i_height, i_width, i_starty, i_startx ); - wbkgd(win, ch); -} - -void -menu::display() -{ - int x, y, i; - - x = 2; - y = 2; - - box( win, 0, 0 ); - mvwprintw( win, y++, x, "%s", c_header ); - - for( i = 0; i < i_numchoices; i++ ) - { - ++y; - - if( i_highlight == i+1 ) // Highlight the current selection. - { - wattron( win, A_REVERSE); - mvwprintw( win, y, x, "%d. %s", i, choices[i]); - wattroff( win, A_REVERSE); - } else - { - mvwprintw( win, y, x, "%d. %s", i, choices[i]); - } - } - - wrefresh( win ); -} - -void -menu::start( void (*swich_case_menu_action)(int) ) -{ - refresh(); - bool b_flag = 1; - - while( b_flag ) - { - keypad(win, 1); - display(); - c = wgetch( win ); - - switch(c) - { - case KEY_UP: - if( i_highlight == 1 ) - i_highlight = i_numchoices; - else - --i_highlight; - break; - - case KEY_DOWN: - if( i_highlight == i_numchoices ) - i_highlight = 1; - else - ++i_highlight; - break; - - case 10: - i_choice = i_highlight; - break; - - default: - mvprintw( NCUR_MENU_CHAR_X, NCUR_MENU_CHAR_Y, "%3d %c ", c, c); - refresh(); - break; - } - - // Menu action. - ( *swich_case_menu_action ) ( i_choice ); - i_choice = 0; - } -} - -#endif -#endif diff --git a/yhttpd/src/ncur/menu.h b/yhttpd/src/ncur/menu.h deleted file mode 100644 index af7dbe9..0000000 --- a/yhttpd/src/ncur/menu.h +++ /dev/null @@ -1,39 +0,0 @@ -#include "../incl.h" - -#ifdef NCURSES - -#ifndef MENU_H -#define MENU_H - -#include <ncurses.h> - -using namespace std; - -class menu -{ -private: - char **choices; - char *c_header; - - int i_startx, i_starty, i_width, i_height, i_highlight, i_choice, - i_numchoices, c; - - WINDOW *win; - - void initialize( const chtype ch ); - -public: - explicit menu( int i_startx, int i_starty, int i_width, int i_height, char *c_header, char **choices, int i_numchoices, const chtype ch ); - ~menu( ); - - void display(); - void start( void (*swich_case_menu_action)(int) ); - - void activate_menu_win() - { - keypad(win, 1); - } -}; - -#endif -#endif diff --git a/yhttpd/src/ncur/ncur.cpp b/yhttpd/src/ncur/ncur.cpp deleted file mode 100644 index 41bfdac..0000000 --- a/yhttpd/src/ncur/ncur.cpp +++ /dev/null @@ -1,259 +0,0 @@ -#ifndef NCUR_CPP -#define NCUR_CPP - -#include "ncur.h" - -#ifdef CLI -#include "../cli/cli.h" -#endif -#include "../sign.h" - -using namespace std; - -#ifdef NCURSES - -const string GMAKE_PARAMS[] = - { "clean_base", "clean_modules", "all" - }; -const int GMAKE_ELEMENTS = 3; - -ncur::ncur( ) -{ - p_messagelist = new list<char*>; - pthread_mutex_init( &mut_messages, NULL ); - pthread_mutex_init( &mut_is_ready, NULL ); - i_message_length = 45; - b_is_ready = false; -} - -ncur::~ncur() -{ - pthread_mutex_destroy( &mut_messages ); - pthread_mutex_destroy( &mut_is_ready ); -} - -void -ncur::start( void *p_void ) -{ - ncur::init_ncurses(); - - char *choices[] = { - " ", - " ", - "Clear template cache ", - " ", - "Show max res. set size ", - "Compile changed sources ", - "Recompile all sources ", - "Show source stats ", - "Command line interface ", - " ", - "Shut down server" - }; - - p_serveroutput = newwin( 19, 49, 1, 31 ); - wbkgd(p_serveroutput, COLOR_PAIR(1)); - - box ( p_serveroutput, 0, 0 ); - mvwprintw( p_serveroutput, 2, 2, NCURMSG ); - wrefresh ( p_serveroutput ); - - print( string("yhttpd ") + VERSION ); - - - p_menu = new menu( 1, 1, 30, 19, NCURADM, choices, 11, COLOR_PAIR(1)); - - mvprintw(NCUR_SERVER_HEADER_X,NCUR_SERVER_HEADER_Y, NCURSE0); - mvprintw(NCUR_POOL_HEADER_X,NCUR_POOL_HEADER_Y, NCURSE1); - mvprintw(NCUR_CACHED_HEADER_X,NCUR_CACHED_HEADER_Y, NCURSE4); - - wrap::HTML->print_cached(0); - - is_ready(true); - wrap::SOCK->print_server_port(); - - p_menu->start( &switch_main_menu_ ); - - shutdown(); -} - -void -ncur::shutdown() -{ - ncur::close_ncurses(); -} - - -void -ncur::print( string *p_msg ) -{ - print( *p_msg ); -} - -void -ncur::print( string s_msg ) -{ - print( (char*)s_msg.c_str() ); -} - -void -ncur::print( char* c_print ) -{ - // Removing \n - if ( strlen(c_print) > i_message_length ) - { - string s_tmp(c_print); - print( s_tmp.substr( 0, i_message_length ) ); - print( s_tmp.substr( i_message_length, s_tmp.length()-i_message_length ) ); - return; - } - - int i; - char* c_temp = new char[i_message_length]; - memcpy( c_temp, c_print, strlen(c_print) ); - - for ( i = strlen(c_print); i < i_message_length; ++i ) - c_temp[i] = ' '; - - c_temp[i] = '\0'; - - pthread_mutex_lock( &mut_messages ); - - if ( p_messagelist->size() > 12 ) - { - char* c_front = p_messagelist->front(); - p_messagelist->pop_front(); - free(c_front); - } - - p_messagelist->push_back( c_temp ); - - - if ( is_ready() ) - { - list<char*>::iterator iter; - iter = p_messagelist->begin(); - - for ( i = 4; i < 18 && iter != p_messagelist->end(); ++i, ++iter ) - mvwprintw( p_serveroutput, i, 2, *iter ); - - wrefresh ( p_serveroutput ); - } - - pthread_mutex_unlock( &mut_messages ); -} - -void -ncur::switch_main_menu_( int i_choice ) -{ - int i; - - if( i_choice != 0 ) - switch ( i_choice ) - { - case 3: - wrap::HTML->clear_cache(); - mvprintw( 20,2, "Cleared the template cache "); - refresh(); - break; - case 4: - refresh(); - break; - case 5: - mvprintw( 20,2, "Showing max resident set size in memory "); - wrap::NCUR->print( STATRSS + string("(") + tool::int2string( - wrap::STAT->get_ru_maxrss()) + string(")")); - break; - case 6: - tool::shell_command( string(GMAKE), METH_NCURSES); - break; - case 7: - for ( i = 0; i < GMAKE_ELEMENTS; i++ ) - tool::shell_command( GMAKE + GMAKE_PARAMS[i], METH_NCURSES); - break; - case 8: - tool::shell_command( string(GMAKE) + " stats", METH_NCURSES); - break; - case 9: -#ifdef CLI - - wrap::NCUR->is_ready(false); - refresh(); /* Print it on to the real screen */ - - def_prog_mode(); /* Save the tty modes */ - endwin(); /* End curses mode temporarily */ - delete new cli(); /* Start CLI mode */ - reset_prog_mode(); /* Return to the previous tty mode*/ - /* stored by def_prog_mode() */ - refresh(); /* Do refresh() to restore the */ - /* Screen contents */ - wrap::NCUR->is_ready(true); - wrap::NCUR->activate_menu_win(); -#else - - mvprintw( 20,2, "CLI mode has not been compiled in! "); -#endif - - break; - case 10: -#ifdef DATABASE - -#endif - - break; - - case 11: // Shut down server - sign::terminate_received(0); - break; - - default: - mvprintw( 20,2, "Selection # %d not yet implemented!", i_choice-1); - wrap::NCUR->print( "Selection not yet implemented!" ); - refresh(); - break; - } -} - -void -ncur::init_ncurses() -{ - initscr(); - start_color(); - clear(); - noecho(); - cbreak(); // Line buffering disabled. pass on everything - init_pair(1, COLOR_BLACK, COLOR_CYAN); - mvprintw( 0,2, (char*)(tool::yhttpd_version()).c_str()); - curs_set(0); - refresh(); -} - -void -ncur::close_ncurses() -{ - refresh(); - clrtoeol(); - refresh(); - endwin(); -} - -void -ncur::is_ready( bool b_is_ready ) -{ - pthread_mutex_lock( &mut_is_ready ); - this->b_is_ready = b_is_ready; - pthread_mutex_unlock( &mut_is_ready ); -} - -bool -ncur::is_ready() -{ - bool b_ret; - pthread_mutex_lock( &mut_is_ready ); - b_ret = b_is_ready; - pthread_mutex_unlock( &mut_is_ready ); - return b_ret; -} - -#endif -#endif diff --git a/yhttpd/src/ncur/ncur.h b/yhttpd/src/ncur/ncur.h deleted file mode 100644 index 1830cdf..0000000 --- a/yhttpd/src/ncur/ncur.h +++ /dev/null @@ -1,51 +0,0 @@ -#include "../incl.h" - -#ifdef NCURSES - -#ifndef NCUR_H -#define NCUR_H - -#include <ncurses.h> -#include <list> - -#include "menu.h" -#include "../thrd/thro.h" - -using namespace std; - -class ncur : public thro -{ -private: - friend class sign; - menu* p_menu; - WINDOW* p_serveroutput; - list<char*>* p_messagelist; // contains the messages for p_serveroutput! - int i_message_length; // the maximum length of a system message! - bool b_is_ready; // is set to TRUE if the admin interface is initialized. - static void init_ncurses(); - static void close_ncurses(); - - pthread_mutex_t mut_messages; - pthread_mutex_t mut_is_ready; - -public: - ncur(); - ~ncur(); - - void start( void *p_void ); - void print( char* c_print ); - void print( string s_msg ); - void print( string* p_msg ); - void is_ready( bool b_is_ready ); - bool is_ready(); - static void switch_main_menu_( int i_choice ); - void shutdown(); - - void activate_menu_win() - { - p_menu->activate_menu_win(); - } -}; - -#endif -#endif |
