35 #if defined (G4VIS_BUILD_DAWN_DRIVER) || defined (G4VIS_USE_DAWN) 
   39 #if !defined G4FR_CLIENT_SERVER_H 
   40 #define G4FR_CLIENT_SERVER_H 
   43 #include<sys/socket.h> 
   44 #include<netinet/in.h> 
   56 const  char     FR_ENV_SERVER_HOST_NAME[]       = 
"G4DAWN_HOST_NAME"  ;
 
   57 const  char     FR_ENV_NAMED_PIPE_CONNECTION[]  = 
"G4DAWN_NAMED_PIPE" ;
 
   63 class G4FRClientServer { 
 
   65         enum { SEND_BUFMAX = 1024 , RECV_BUFMAX = 1024 };
 
   66         enum { SUN_PATH_MAX = 16 };
 
   69         const char              TERMINATOR ;
 
   70         const char              END_OF_LINE;
 
   71         char                    SUN_PATH[ SUN_PATH_MAX ];
 
   75         char            fReceivedMessage [ RECV_BUFMAX ];
 
   76         char            fSendingMessage  [ SEND_BUFMAX ];
 
   80         void            Err( 
const char* message ) { perror(message) ;}
 
   81         void            SetSendingMessage( 
const char* message ) 
 
   82                                 { strcpy( fSendingMessage, message );}
 
   87         int             AcceptUnix(){ 
return 0;}  
 
   88         int             AcceptINET(){ 
return 0 ;}  
 
   97         G4FRClientServer (      
char terminator = 
'.'           ,
 
   98                                 char end_line = 
'\n'              ) ;  
 
   99         virtual ~G4FRClientServer () {;}
 
  100         void            SetSunPath( 
const char* sun_path ) 
 
  101                         { strcpy     ( SUN_PATH, sun_path ); }
 
  102         void            SetPortNumber( 
int port_num ) 
 
  103                         { PORT_NUMBER = port_num ; }
 
  104         void            IncrementPortNumber( 
int incr = 1 ) 
 
  105                         { PORT_NUMBER += incr ; }
 
  106         const char*     GetSendingMessage()
 const 
  107                                 { 
return  fSendingMessage            ;}
 
  108         int             GetSendingMessageLength()
 const 
  109                                 { 
return  strlen(fSendingMessage)    ;}
 
  110         void            SetReceivedMessage( 
const char* message ) 
 
  111                                 { strcpy( fReceivedMessage, message );}
 
  112         const char*     GetReceivedMessage()
 const 
  113                                 { 
return fReceivedMessage            ;}
 
  114         int             GetReceivedMessageLength()
 const     
  115                                 { 
return strlen(fReceivedMessage)    ;}
 
  116         int             GetSofd()
 const { 
return fSocketFd ; }
 
  117         int             GetPortNumber ()
 const { 
return PORT_NUMBER ; }
 
  118         void            ClearReceivedMessage () 
 
  119                         { memset(fReceivedMessage, 
'\0', RECV_BUFMAX) ; }
 
  121         int             IsTerminator(
char ch ) { 
return ( ch == TERMINATOR ); }
 
  122         char            GetTerminator()
  const  { 
return TERMINATOR ; }
 
  123         int             IsEndOfLine (
char ch ) { 
return ( ch == END_OF_LINE ); }
 
  124         char            GetEndOfLine()
 const { 
return END_OF_LINE ; }
 
  127         void            WaitSendBack( 
const char* command_string ) ;
 
  130         virtual void    Send     ( 
const char* message ) ; 
 
  131         virtual void    SendLine ( 
const char* message ) ; 
 
  134         virtual void    Receive() ;
 
  135         virtual void    ReceiveLine() ;
 
  141 #endif //G4VIS_BUILD_DAWN_DRIVER