ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/idar/idar.c
(Generate patch)

Comparing projects/cms/source/idar/idar.c (file contents):
Revision 1.3 by tdb, Sat Mar 29 19:27:36 2003 UTC vs.
Revision 1.6 by tdb, Sun Mar 30 17:11:26 2003 UTC

# Line 34 | Line 34
34   #include <libxml/parser.h>
35   #include "genmergesort.h"
36  
37 + #ifdef HAVE_NCURSES_H
38 + #include <ncurses.h>
39 + #else
40 + #include <curses.h>
41 + #endif
42 +
43   struct host_line_t{
44          char *hostname;
45          int line;
# Line 580 | Line 586 | void display(machine_data_list_t *machine_data_list, d
586          int x=1;
587  
588          if(*title){
589 <                printf("\033[2J");
589 > //              printf("\033[2J");
590          //      printf("\033[1;1HHostname     CPU   Load  Page  Page  Mem   Swap      Net      Net      Disk     Disk");
591 <        //       printf("\033[2;1H             used%% (1m)  ins   outs  used  used      rx       tx       read     write");
592 <                printf("\033[1;1H%-11s", "Hostname");
591 >        //       printw("\033[2;1H             used%% (1m)  ins   outs  used  used      rx       tx       read     write");
592 >                move(1,1);
593 >                printw("%-11s", "Hostname");
594                  x=x+11+1;
595                  if(display_config->cpu_used){
596 <                        printf("\033[1;%dH%5s", x, "CPU");
597 <                        printf("\033[2;%dH%5s", x, "used%");
596 >                        move(1,x);
597 >                        printw("%5s", "CPU");
598 >                        move(2,x);
599 >                        printw("%5s", "used%");
600                          x+=6;
601                  }
602                  if(display_config->load_1){
603 <                        printf("\033[1;%dH%5s", x, "Load");
604 <                        printf("\033[2;%dH%5s", x, "(1m)");
603 >                        move(1,x);
604 >                        printw("%5s", "Load");
605 >                        move(2,x);
606 >                        printw("%5s", "(1m)");
607                          x+=6;
608                  }
609                  if(display_config->pages_in){
610 <                        printf("\033[1;%dH%5s", x, "Page");
611 <                        printf("\033[2;%dH%5s", x, "ins");
610 >                        move(1,x);
611 >                        printw("%5s", "Page");
612 >                        move(2,x);
613 >                        printw("%5s", "ins");
614                          x+=6;
615                  }
616                  if(display_config->pages_out){
617 <                        printf("\033[1;%dH%5s", x, "Page");
618 <                        printf("\033[2;%dH%5s", x, "outs");
617 >                        move(1,x);
618 >                        printw("%5s", "Page");
619 >                        move(2,x);
620 >                        printw("%5s", "outs");
621                          x+=6;
622                  }
623                  if(display_config->memory_used_pecent){
624 <                        printf("\033[1;%dH%5s", x, "Mem");
625 <                        printf("\033[2;%dH%5s", x, "used");
624 >                        move(1,x);
625 >                        printw("%5s", "Mem");
626 >                        move(2,x);
627 >                        printw("%5s", "used");
628                          x+=6;
629                  }
630                  if(display_config->swap_used_pecent){
631 <                        printf("\033[1;%dH%5s", x, "Swap");
632 <                        printf("\033[2;%dH%5s", x, "used");
631 >                        move(1,x);
632 >                        printw("%5s", "Swap");
633 >                        move(2,x);
634 >                        printw("%5s", "used");
635                          x+=6;
636                  }
637                  if(display_config->network_io_total_rx){
638 <                        printf("\033[1;%dH%8s", x, "Net");
639 <                        printf("\033[2;%dH%8s", x, "rx");
638 >                        move(1,x);
639 >                        printw("%8s", "Net");
640 >                        move(2,x);
641 >                        printw("%8s", "rx");
642                          x+=9;
643                  }
644                  if(display_config->network_io_total_tx){
645 <                        printf("\033[1;%dH%8s", x, "Net");
646 <                        printf("\033[2;%dH%8s", x, "tx");
645 >                        move(1,x);
646 >                        printw("%8s", "Net");
647 >                        move(2,x);
648 >                        printw("%8s", "tx");
649                          x+=9;
650                  }
651                  if(display_config->disk_io_total_read){
652 <                        printf("\033[1;%dH%9s", x, "Disk");
653 <                        printf("\033[2;%dH%9s", x, "read");
652 >                        move(1,x);
653 >                        printw("%9s", "Disk");
654 >                        move(2,x);
655 >                        printw("%9s", "read");
656                          x+=10;
657                  }
658                  if(display_config->disk_io_total_read){
659 <                        printf("\033[1;%dH%9s", x, "Disk");
660 <                        printf("\033[2;%dH%9s", x, "write");
659 >                        move(1,x);
660 >                        printw("%9s", "Disk");
661 >                        move(2,x);
662 >                        printw("%9s", "write");
663                          x+=10;
664                  }
665                  
# Line 641 | Line 668 | void display(machine_data_list_t *machine_data_list, d
668  
669          for(;num_lines;num_lines--){    
670                  if(machine_data_list==NULL) break;
671 +                move(line_num++, 1);
672 +                printw("%-11s", machine_data_list->sysname);
673  
674 <                printf("\033[%d;%dH%-11s", line_num++, 1, machine_data_list->sysname);
674 >                if(display_config->cpu_used)            printw(" %5.1f", machine_data_list->cpu_used);
675 >                if(display_config->load_1)              printw(" %5.1f", machine_data_list->load_1);
676 >                if(display_config->pages_in)            printw(" %5d", machine_data_list->pages_in);
677 >                if(display_config->pages_out)           printw(" %5d", machine_data_list->pages_out);
678 >                if(display_config->memory_used_pecent)  printw(" %5.1f", machine_data_list->memory_used_pecent);
679 >                if(display_config->swap_used_pecent)    printw(" %5.1f", machine_data_list->swap_used_pecent);
680 >                if(display_config->network_io_total_rx) printw(" %8lld", machine_data_list->network_io_total_rx);
681 >                if(display_config->network_io_total_tx) printw(" %8lld", machine_data_list->network_io_total_tx);
682 >                if(display_config->disk_io_total_read)  printw(" %9lld", machine_data_list->disk_io_total_read);
683 >                if(display_config->disk_io_total_write) printw(" %9lld", machine_data_list->disk_io_total_write);
684  
647                if(display_config->cpu_used)            printf(" %5.1f", machine_data_list->cpu_used);
648                if(display_config->load_1)              printf(" %5.1f", machine_data_list->load_1);
649                if(display_config->pages_in)            printf(" %5d", machine_data_list->pages_in);
650                if(display_config->pages_out)           printf(" %5d", machine_data_list->pages_out);
651                if(display_config->memory_used_pecent)  printf(" %5.1f", machine_data_list->memory_used_pecent);
652                if(display_config->swap_used_pecent)    printf(" %5.1f", machine_data_list->swap_used_pecent);
653                if(display_config->network_io_total_rx) printf(" %8lld", machine_data_list->network_io_total_rx);
654                if(display_config->network_io_total_tx) printf(" %8lld", machine_data_list->network_io_total_tx);
655                if(display_config->disk_io_total_read)  printf(" %9lld", machine_data_list->disk_io_total_read);
656                if(display_config->disk_io_total_write) printf(" %9lld", machine_data_list->disk_io_total_write);
657
685                  machine_data_list=machine_data_list->next;
686          }
687  
688  
689 <        fflush(stdout);
689 >        refresh();
690          
691   }
692  
693   int main(int argc, char **argv){
694 +        WINDOW *window;
695 +        fd_set infds;
696 +
697          FILE *control;
698          FILE *data;
699  
# Line 683 | Line 713 | int main(int argc, char **argv){
713          int cmdopt;
714          extern int optind;
715          extern char *optarg;
686        sortby_ptr=NULL;
716          
717          display_config_t display_config;
718 +        char ch;
719  
720 +        int data_fileno, stdin_fileno, biggest_fileno;
721 +
722 +        sortby_ptr=NULL;
723 +
724          /* What to display defaults */
725          display_config.cpu_user=0;
726          display_config.cpu_idle=0;
# Line 722 | Line 756 | int main(int argc, char **argv){
756          display_config.network_io_total_rx=1;
757          display_config.network_all_stats=1;
758  
759 <        display_config.disk_io_total_write=1;
760 <        display_config.disk_io_total_read=1;
759 >        display_config.disk_io_total_write=0;
760 >        display_config.disk_io_total_read=0;
761          display_config.disk_io_all_stats=0;
762  
763          display_config.disk_total_used=0;
764          display_config.disk_all_stats=0;
765  
732        
766          while((cmdopt=getopt(argc, argv, "d:s:"))  != -1){
767                  switch(cmdopt){
768                          case 'd':
# Line 816 | Line 849 | int main(int argc, char **argv){
849          printf("\033[1;1HHostname     CPU   Load  Page  Page  Mem   Swap      Net      Net      Disk     Disk");
850          printf("\033[2;1H             used%% (1m)  ins   outs  used  used      rx       tx       read     write");      
851          */
852 <        fflush(stdout);
852 >
853 >        initscr();
854 >        nonl();
855 >        cbreak();
856 >        echo();
857 >        window=newwin(0, 0, 0, 0);
858 >
859 >        stdin_fileno=fileno(stdin);
860 >        data_fileno=fileno(data);
861 >        biggest_fileno=(data_fileno>stdin_fileno) ? (data_fileno+1) : (stdin_fileno+1);
862 >
863          for(;;){
864 <                response=fpgetline(data);
865 <                if (response==NULL){
866 <                        errf("Failed to read data (%m)");
867 <                        exit(1);
864 >                FD_ZERO(&infds);
865 >                FD_SET(stdin_fileno, &infds);
866 >                FD_SET(data_fileno, &infds);
867 >                select(biggest_fileno, &infds, NULL, NULL, NULL);
868 >                
869 >                if(FD_ISSET(stdin_fileno, &infds)){
870 >                
871 >                        ch=getc(stdin);
872 >
873 >                        if(ch=='q'){
874 >                                endwin();
875 >                                exit(0);
876 >                        }
877                  }
878 +                if(FD_ISSET(data_fileno, &infds)){
879 +                        response=fpgetline(data);
880 +                        if (response==NULL){
881 +                                errf("Failed to read data (%m)");
882 +                                exit(1);
883 +                        }
884 +                }
885 +
886  
887                  num_hosts=parse_xml(response, &machine_data_list);
888                  if(num_hosts==-1) continue;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines