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

Diff for /OpenXM/src/kan96xx/plugin/oxmisc2.c between version 1.18 and 1.24

version 1.18, 2003/11/17 05:45:47 version 1.24, 2004/09/17 08:46:10
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc2.c,v 1.17 2002/11/08 14:18:02 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc2.c,v 1.23 2004/09/17 07:27:28 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include "ox_kan.h"  #include "ox_kan.h"
 #include "oxmisc2.h"   /* This file requires sm1 object description. */  #include "oxmisc2.h"   /* This file requires sm1 object description. */
Line 226  int oxReq(oxclientp client,int func,struct object ob)
Line 226  int oxReq(oxclientp client,int func,struct object ob)
     oxReqExecuteFunction(client->datafp2,KopString(ob));      oxReqExecuteFunction(client->datafp2,KopString(ob));
     client->dstate = DSTATE_ANY;      client->dstate = DSTATE_ANY;
     break;      break;
     case SM_executeFunctionWithOptionalArgument:
       if (ob.tag != Sdollar) {
         errorOxmisc2("SM_executeFunctionWithOptionalArgument : the argument must be a string.");
         return(-1);
       }
       oxReqExecuteFunctionWithOptionalArgument(client->datafp2,KopString(ob));
       client->dstate = DSTATE_ANY;
       break;
   case SM_popString:    case SM_popString:
     oxReqPopString(client->datafp2);      oxReqPopString(client->datafp2);
     client->dstate = DSTATE_ANY;      client->dstate = DSTATE_ANY;
Line 254  int oxReq(oxclientp client,int func,struct object ob)
Line 262  int oxReq(oxclientp client,int func,struct object ob)
     oxReqSingleOperand(client->datafp2,SM_dupErrors);      oxReqSingleOperand(client->datafp2,SM_dupErrors);
     client->dstate = DSTATE_ANY;      client->dstate = DSTATE_ANY;
     break;      break;
     case SM_pushCMOtag:
       oxReqSingleOperand(client->datafp2,SM_pushCMOtag);
       client->dstate = DSTATE_ANY;
       break;
   default:    default:
     fprintf(MyErrorOut,"func=%d ",func);      fprintf(MyErrorOut,"func=%d ",func);
     errorOxmisc2("This function is not implemented.");      errorOxmisc2("This function is not implemented.");
Line 265  int oxReq(oxclientp client,int func,struct object ob)
Line 277  int oxReq(oxclientp client,int func,struct object ob)
   
 struct object KoxCreateClient(struct object ip,  struct object KoxCreateClient(struct object ip,
                               struct object portStream,                                struct object portStream,
                               struct object portControl)                                struct object portControl,struct object pass)
 {  {
   struct object rob;    struct object rob;
   oxclientp client;    oxclientp client;
     char *passControl; char *passData;
     struct object tob;
     passControl = NULL; passData = NULL;
   rob.tag = Snull;    rob.tag = Snull;
   if (ip.tag != Sdollar) {    if (ip.tag != Sdollar) {
     errorOxmisc2("KoxCreateClient(): The first argument must be a hostname given by a string.");      errorOxmisc2("KoxCreateClient(): The first argument must be a hostname given by a string.");
Line 294  struct object KoxCreateClient(struct object ip,
Line 309  struct object KoxCreateClient(struct object ip,
     errorOxmisc2("KoxCreateClient(): The third argument must be a port number given in an integer.");      errorOxmisc2("KoxCreateClient(): The third argument must be a port number given in an integer.");
     return(rob);      return(rob);
   }    }
   client = oxCreateClient(KopString(ip),KopInteger(portStream),KopInteger(portControl));    if (pass.tag == Sarray) {
       if (getoaSize(pass) < 2) {
             errorOxmisc2("KoxCreateClient(): the fourth argument --- pass must be an array of strings.");
             return rob;
           }
       tob = getoa(pass,0);
           if (tob.tag != Sdollar) {
             errorOxmisc2("KoxCreateClient(): the fourth argument --- pass must be an array of strings.");
             return rob;
           }
       passControl = KopString(tob);
       tob = getoa(pass,1);
           if (tob.tag != Sdollar) {
             errorOxmisc2("KoxCreateClient(): the fourth argument --- pass must be an array of strings.");
             return rob;
           }
       passData = KopString(tob);
     }
     client = oxCreateClient(KopString(ip),KopInteger(portStream),KopInteger(portControl),passControl,passData);
   if (client == NULL) {    if (client == NULL) {
     errorOxmisc2("KoxCreateClient(): Open error.");      errorOxmisc2("KoxCreateClient(): Open error.");
     return(rob);      return(rob);
Line 678  struct object KoxLog(struct object client,struct objec
Line 711  struct object KoxLog(struct object client,struct objec
         return rob;          return rob;
   }    }
   k = fp2log(cc1->datafp2,in.rc.file,out.rc.file);    k = fp2log(cc1->datafp2,in.rc.file,out.rc.file);
     fputc(cc1->engineByteOrder,out.rc.file); /* Output engineByteOrder. */
   /* synchronize cc1 and client. */    /* synchronize cc1 and client. */
   oxClientToObject(cc1,client);    oxClientToObject(cc1,client);
   
Line 765  static int cmoCheck00(struct object obj,int cmo[], int
Line 799  static int cmoCheck00(struct object obj,int cmo[], int
     /* typeTrans[Spoly] = CMO_DMS;  */      /* typeTrans[Spoly] = CMO_DMS;  */
     typeTrans[Spoly] = CMO_DISTRIBUTED_POLYNOMIAL;      typeTrans[Spoly] = CMO_DISTRIBUTED_POLYNOMIAL;
     typeTrans[Sdouble] = CMO_64BIT_MACHINE_DOUBLE;      typeTrans[Sdouble] = CMO_64BIT_MACHINE_DOUBLE;
           typeTrans[SrationalFunction] = CMO_RATIONAL;
     typeTrans[CLASSNAME_ERROR_PACKET]   = CMO_ERROR2;      typeTrans[CLASSNAME_ERROR_PACKET]   = CMO_ERROR2;
     typeTrans[CLASSNAME_mathcap] = CMO_MATHCAP;      typeTrans[CLASSNAME_mathcap] = CMO_MATHCAP;
     typeTrans[CLASSNAME_indeterminate] = CMO_INDETERMINATE;      typeTrans[CLASSNAME_indeterminate] = CMO_INDETERMINATE;
Line 1009  struct object KoxCreateClient2(struct object peer,
Line 1044  struct object KoxCreateClient2(struct object peer,
   int fdStream, portStream, fdControl, portControl;    int fdStream, portStream, fdControl, portControl;
   int i;    int i;
   struct object ob1;    struct object ob1;
     struct object opassControl, opassData;
   rob.tag = Snull;    rob.tag = Snull;
   if (peer.tag != Sarray) {    if (peer.tag != Sarray) {
     errorOxmisc2("KoxCreateClient2(): The first argument must be an array [fdStream, portStream, fdControl, portControl]");      errorOxmisc2("KoxCreateClient2(): The first argument must be an array [fdStream, portStream, fdControl, portControl]");
Line 1032  struct object KoxCreateClient2(struct object peer,
Line 1068  struct object KoxCreateClient2(struct object peer,
   if (ipmask.tag != Sinteger) {    if (ipmask.tag != Sinteger) {
     errorOxmisc2("KoxCreateClient2(): ipmask must be an integer.");      errorOxmisc2("KoxCreateClient2(): ipmask must be an integer.");
   }    }
   if (pass.tag != Sdollar) {    if (pass.tag == Sdollar) {
     errorOxmisc2("KoxCreateClient2(): pass must be a string.");      opassControl = pass; opassData = pass;
     }else if (pass.tag == Sarray) {
       if (getoaSize(pass) < 2) errorOxmisc2("KoxCreateClient2: #passArray < 2.");
       opassControl = getoa(pass,0);
       opassData = getoa(pass,1);
     }else{
       errorOxmisc2("KoxCreateClient2(): pass must be a string or an array.");
   }    }
     if ((opassControl.tag != Sdollar) || (opassData.tag != Sdollar)) {
       errorOxmisc2("KoxCreateClient2(): opassControl or opassData must be a string.");
     }
   
   client = oxCreateClient2(fdStream, portStream, fdControl, portControl,    client = oxCreateClient2(fdStream, portStream, fdControl, portControl,
                            KopInteger(ipmask), KopString(pass));                             KopInteger(ipmask),
                              KopString(opassControl),KopString(opassData));
   if (client == NULL) {    if (client == NULL) {
     errorOxmisc2("KoxCreateClient2(): Open error.");      errorOxmisc2("KoxCreateClient2(): Open error.");
     return(rob);      return(rob);

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.24

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