[BACK]Return to oxmisc.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / plugin

Diff for /OpenXM/src/kan96xx/plugin/oxmisc.c between version 1.13 and 1.19

version 1.13, 2002/11/07 13:32:06 version 1.19, 2004/02/25 23:14:35
Line 1 
Line 1 
 /*  $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc.c,v 1.12 2002/02/24 10:27:20 takayama Exp $ */  /*  $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc.c,v 1.18 2003/11/19 01:02:39 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/stat.h>  #include <sys/stat.h>
Line 11 
Line 11 
 #include <unistd.h>  #include <unistd.h>
 #include <signal.h>  #include <signal.h>
 #include <setjmp.h>  #include <setjmp.h>
   #include <errno.h>
 #define SET_MYERROROUT { if (MyErrorOut == NULL) MyErrorOut=stdout; }  #define SET_MYERROROUT { if (MyErrorOut == NULL) MyErrorOut=stdout; }
 /* It is also defined in oxmisc2.c */  /* It is also defined in oxmisc2.c */
 FILE *MyErrorOut = NULL;  FILE *MyErrorOut = NULL;
Line 500  int oxclientMultiSelect(oxclientp clients[],int datare
Line 501  int oxclientMultiSelect(oxclientp clients[],int datare
   int humanfd = 0;    int humanfd = 0;
   fd_set readfds;    fd_set readfds;
   struct timeval timeout;    struct timeval timeout;
   extern int errno;  
   
   SET_MYERROROUT;    SET_MYERROROUT;
   /** printf("(1)"); fflush(NULL); */    /** printf("(1)"); fflush(NULL); */
Line 598  int oxInitClient(oxclientp client)
Line 598  int oxInitClient(oxclientp client)
   client->mathcapObjp = NULL;    client->mathcapObjp = NULL;
   client->controlByteOrder = OX_BYTE_NETWORK_BYTE_ORDER;    client->controlByteOrder = OX_BYTE_NETWORK_BYTE_ORDER;
   client->engineByteOrder = OX_BYTE_NETWORK_BYTE_ORDER;    client->engineByteOrder = OX_BYTE_NETWORK_BYTE_ORDER;
     client->engineID = -1;
   return(0);    return(0);
 }  }
   
Line 939  oxclientp oxCreateClient2(int fdstream,int portStream,
Line 940  oxclientp oxCreateClient2(int fdstream,int portStream,
   if (v) fprintf(stderr,"\nStream port %d : Connected.\n",portStream);    if (v) fprintf(stderr,"\nStream port %d : Connected.\n",portStream);
   
   if (fdStream == -1 || fdControl == -1) {    if (fdStream == -1 || fdControl == -1) {
     fprintf(stderr,"\nOpen error in oxCreateClient.\n");      fprintf(stderr,"\nOpen error in oxCreateClient2.\n");
       fprintf(stderr,"fdStream=%d, fdControl=%d\n",fdStream,fdControl);
     return(NULL);      return(NULL);
   }    }
   
Line 1006  int oxSetByteOrder(int fd) {
Line 1008  int oxSetByteOrder(int fd) {
   return(OX_BYTE_NETWORK_BYTE_ORDER);    return(OX_BYTE_NETWORK_BYTE_ORDER);
 }  }
   
 int oxTellMyByteOrder(int fd) {  int oxTellMyByteOrder(int fdOut, int fdIn) {
   char data[1];    char data[1];
   int peertype;    int peertype;
   /* It is for server. read and next write. */    /* It is for server. read and next write. */
   
   /* We support only Network byte order */    /* We support only Network byte order */
   data[0] = OX_BYTE_NETWORK_BYTE_ORDER;    data[0] = OX_BYTE_NETWORK_BYTE_ORDER;
   write(fd,data,1);    write(fdOut,data,1);
   fsync(fd);  /* returns 0 if normal. Does it work for socket? */    fsync(fdOut);  /* returns 0 if normal. Does it work for socket? */
   
   read(fd,data,1);    read(fdIn,data,1); /* Read pear's byte order */
   
   return(OX_BYTE_NETWORK_BYTE_ORDER);    return(OX_BYTE_NETWORK_BYTE_ORDER);
 }  }
   
   
   struct object OxClientList[MAX_N_OF_CLIENT];
   int OxClientListn = 0;
   
   int oxGetClientID() {
     extern struct object OxClientList[];
     extern int OxClientListn;
     extern struct object Nobj;
     int i;
     for (i=0; i<OxClientListn; i++) {
           if ((OxClientList[i]).tag == Snull) {
             return i;
           }
     }
     i = OxClientListn;
     (OxClientList[i]).tag = Snull;
     if (OxClientListn < MAX_N_OF_CLIENT-1) {
           OxClientListn++;
           return i;
     }else{
           fprintf(MyErrorOut,"oxGetClientID(): the client table is full. Returns ID = 0.\n");
           return 0;
     }
   }
   
   char *oxFIDtoStr(int id) {
     switch( id ) {
     case SM_mathcap:
       return "SM_mathcap"; break;
     case SM_setMathCap:
       return "SM_setMathCap"; break;
     case SM_pops:
       return "SM_pops"; break;
     case SM_getsp:
       return "SM_getsp"; break;
     case SM_dupErrors:
       return "SM_dupErrors"; break;
     case SM_pushCMOtag:
       return "SM_pushCMOtag"; break;
     case SM_setName:
       return "SM_setName"; break;
     case SM_evalName:
       return "SM_evalName"; break;
     case SM_executeStringByLocalParser:
       return "SM_executeStringByLocalParser"; break;
     case SM_executeFunction:
       return "SM_executeFunction"; break;
     case SM_popCMO:
       return "SM_popCMO"; break;
     case SM_popString:
       return "SM_popString"; break;
     case SM_shutdown:
       return "SM_shutdown"; break;
     case SM_beginBlock:
       return "SM_beginBlock"; break;
     case SM_endBlock:
       return "SM_endBlock"; break;
     default:
       return "Unknown to oxFIDtoStr"; break;
     }
   }

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.19

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>