#include "rcs_defs.hh"
#include <sys/types.h>
#include <unistd.h>
#include "cms_srv.hh"
#include "nml.hh"
#include "rem_msg.hh"
Include dependency graph for nml_srv.hh:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
class | NML_SERVER_LOCAL_PORT |
class | NML_SERVER |
class | NML_SUPER_SERVER |
Functions | |
void RCS_EXPORT | run_nml_servers () |
void RCS_EXPORT | spawn_nml_servers () |
void RCS_EXPORT | kill_nml_servers () |
void RCS_EXPORT | nml_server_cleanup () |
Variables | |
RCS_EXPORT NML_SUPER_SERVER * | NML_Default_Super_Server |
|
Definition at line 686 of file nml_srv.cc. 00687 { 00688 #if defined(sun4os5) || defined(__MSDOS__) && !defined(WIN32) 00689 atexit (nml_cleanup); 00690 #endif 00691 if (NULL != NML_Default_Super_Server) 00692 { 00693 if (NML_Default_Super_Server->servers != NULL) 00694 { 00695 if (NML_Default_Super_Server->servers->list_size < 00696 NML_Default_Super_Server->unspawned_servers) 00697 { 00698 NML_Default_Super_Server->unspawned_servers = 00699 NML_Default_Super_Server->servers->list_size; 00700 } 00701 if (NML_Default_Super_Server->unspawned_servers <= 0) 00702 { 00703 rcs_print_error 00704 ("run_nml_servers(): No buffers without servers already spawned for them.\n"); 00705 return; 00706 } 00707 if (NML_Default_Super_Server->unspawned_servers == 1) 00708 { 00709 NML_Default_Super_Server->unspawned_servers = 0; 00710 NML_SERVER *sole_server; 00711 sole_server = 00712 (NML_SERVER *) NML_Default_Super_Server->servers->get_head (); 00713 while (sole_server != NULL) 00714 { 00715 if (NULL != sole_server->remote_port) 00716 { 00717 if (!sole_server->remote_port->running && 00718 !sole_server->server_spawned) 00719 { 00720 break; 00721 } 00722 } 00723 sole_server = 00724 (NML_SERVER *) NML_Default_Super_Server->servers-> 00725 get_next (); 00726 } 00727 if (NULL == sole_server) 00728 { 00729 rcs_print_error 00730 ("run_nml_servers() : sole_server is NULL.\n"); 00731 run_nml_server_exit (-1); 00732 } 00733 else 00734 { 00735 #ifndef UNDER_CE 00736 #if defined(WIN32) && !defined(gnuwin32) 00737 SetConsoleCtrlHandler (catch_control_C1, TRUE); 00738 #else 00739 #ifdef sparcworks_sun4 00740 signal (SIGINT, (void (*)(int,...)) catch_control_C1); 00741 #else 00742 signal (SIGINT, catch_control_C1); 00743 #endif 00744 #endif 00745 #endif 00746 sole_server->run (0); 00747 run_nml_server_exit (-1); 00748 } 00749 } 00750 else 00751 { 00752 nml_control_C_caught = 0; 00753 NML_Default_Super_Server->spawn_all_servers (); 00754 #ifndef UNDER_CE 00755 #if defined(WIN32) && !defined(gnuwin32) 00756 SetConsoleCtrlHandler (catch_control_C2, TRUE); 00757 #else 00758 #ifdef sparcworks_sun4 00759 signal (SIGINT, (void (*)(int,...)) catch_control_C2); 00760 #else 00761 signal (SIGINT, catch_control_C2); 00762 #endif 00763 #endif 00764 #endif 00765 while (!nml_control_C_caught) 00766 esleep (2.0); 00767 NML_Default_Super_Server->kill_all_servers (); 00768 nml_cleanup (); 00769 run_nml_server_exit (0); 00770 } 00771 } 00772 else 00773 { 00774 rcs_print_error 00775 ("run_nml_servers(): No buffers without servers already spawned for them.\n"); 00776 } 00777 } 00778 else 00779 { 00780 rcs_print_error 00781 ("run_nml_servers(): No buffers without servers already spawned for them.\n"); 00782 } 00783 run_nml_server_exit (-1); 00784 } |
|
Definition at line 787 of file nml_srv.cc. 00788 { 00789 if (NULL != NML_Default_Super_Server) 00790 { 00791 NML_Default_Super_Server->spawn_all_servers (); 00792 } 00793 } |
|
Definition at line 796 of file nml_srv.cc. 00797 { 00798 if (!dont_kill_servers) 00799 { 00800 if (NULL != NML_Default_Super_Server) 00801 { 00802 NML_Default_Super_Server->kill_all_servers (); 00803 } 00804 } 00805 } |
|
Definition at line 808 of file nml_srv.cc. 00809 { 00810 if (!dont_cleanup_servers) 00811 { 00812 if (NULL != NML_Default_Super_Server) 00813 { 00814 NML_Default_Super_Server->kill_all_servers (); 00815 NML_Default_Super_Server->delete_all_servers (); 00816 #ifdef VXWORKS 00817 if (NULL != NML_Default_Super_Server->servers) 00818 { 00819 if (0 == NML_Default_Super_Server->servers->list_size) 00820 { 00821 #endif 00822 delete NML_Default_Super_Server; 00823 NML_Default_Super_Server = (NML_SUPER_SERVER *) NULL; 00824 #ifdef VXWORKS 00825 } 00826 } 00827 #endif 00828 } 00829 } 00830 } |
|
Definition at line 99 of file nml_srv.hh. |