[BACK]Return to ox.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_toolkit

Diff for /OpenXM/src/ox_toolkit/ox.c between version 1.16 and 1.19

version 1.16, 2000/11/28 22:11:13 version 1.19, 2003/01/11 11:42:31
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.15 2000/10/12 15:53:25 ohara Exp $ */  /* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.18 2000/12/05 08:30:25 ohara Exp $ */
   
 /*  /*
    This module includes functions for sending/receiveng CMO's.     This module includes functions for sending/receiveng CMO's.
Line 19 
Line 19 
 #include "ox_toolkit.h"  #include "ox_toolkit.h"
 #include "parse.h"  #include "parse.h"
   
 /* CMO_xxx の値の順にならべること(デバッグのため) */  /* sorting by the value of CMO_xxx.  (for debugging) */
 static cmo_null*         receive_cmo_null(OXFILE *oxfp);  static cmo_null*         receive_cmo_null(OXFILE *oxfp);
 static cmo_int32*        receive_cmo_int32(OXFILE *oxfp);  static cmo_int32*        receive_cmo_int32(OXFILE *oxfp);
 static cmo_string*       receive_cmo_string(OXFILE *oxfp);  static cmo_string*       receive_cmo_string(OXFILE *oxfp);
Line 88  cmo_error2* make_error_object(int err_code, cmo *ob)
Line 88  cmo_error2* make_error_object(int err_code, cmo *ob)
     list_append(li, (cmo *)new_cmo_int32(current_received_serial));      list_append(li, (cmo *)new_cmo_int32(current_received_serial));
     list_append(li, (cmo *)new_cmo_int32(err_code));      list_append(li, (cmo *)new_cmo_int32(err_code));
     list_append(li, ob);      list_append(li, ob);
     /* 他の情報を加えるならココ */  
     return new_cmo_error2((cmo *)li);      return new_cmo_error2((cmo *)li);
 }  }
   
Line 226  static cmo_error2* receive_cmo_error2(OXFILE *oxfp)
Line 225  static cmo_error2* receive_cmo_error2(OXFILE *oxfp)
     return new_cmo_error2(ob);      return new_cmo_error2(ob);
 }  }
   
 /* receive_ox_tag() == OX_DATA の後に呼び出される */  /* receive_cmo() is called after receive_ox_tag(). */
 /* 関数ポインタを使った方がきれいに書けるような気がする.  */  
 /* if (foo[tag] != NULL) foo[tag](oxfp); とか */  
   
 cmo* receive_cmo(OXFILE *oxfp)  cmo* receive_cmo(OXFILE *oxfp)
 {  {
     cmo* m;      cmo* m;
Line 275  cmo* receive_cmo(OXFILE *oxfp)
Line 271  cmo* receive_cmo(OXFILE *oxfp)
     case CMO_QQ:      case CMO_QQ:
     default:      default:
         m = NULL;          m = NULL;
         fprintf(stderr, "the CMO (%d) is not implemented.\n", tag);          fprintf(ox_stderr, "the CMO (%d) is not implemented.\n", tag);
     }      }
     return m;      return m;
 }  }
Line 305  void ox_close(OXFILE *sv)
Line 301  void ox_close(OXFILE *sv)
 #ifdef DEBUG  #ifdef DEBUG
     sleep(2);      sleep(2);
     /* We wait thar an OpenXM server terminates. */      /* We wait thar an OpenXM server terminates. */
     fprintf(stderr, "I have closed the connection to an Open XM server.\n");      fprintf(ox_stderr, "I have closed the connection to an Open XM server.\n");
 #endif  #endif
 }  }
   
Line 382  int ox_flush(OXFILE *sv)
Line 378  int ox_flush(OXFILE *sv)
 void ox_reset(OXFILE *sv)  void ox_reset(OXFILE *sv)
 {  {
     send_ox_command(oxf_control(sv), SM_control_reset_connection);      send_ox_command(oxf_control(sv), SM_control_reset_connection);
   
     receive_ox_tag(oxf_control(sv));      /* OX_DATA */  
     receive_cmo(oxf_control(sv));         /* (CMO_INT32, 0) */  
   
     while(receive_ox_tag(sv) != OX_SYNC_BALL) {      while(receive_ox_tag(sv) != OX_SYNC_BALL) {
         receive_cmo(sv); /* skipping a message. */          receive_cmo(sv); /* skipping a message. */
     }      }
   
     send_ox_tag(sv, OX_SYNC_BALL);      send_ox_tag(sv, OX_SYNC_BALL);
 #ifdef DEBUG  #ifdef DEBUG
     fprintf(stderr, "I have reset an Open XM server.\n");      fprintf(ox_stderr, "I have reset an Open XM server.\n");
 #endif  #endif
 }  }
   
Line 570  ox_sync_ball* new_ox_sync_ball()
Line 562  ox_sync_ball* new_ox_sync_ball()
     ox_sync_ball *m = malloc(sizeof(ox_sync_ball));      ox_sync_ball *m = malloc(sizeof(ox_sync_ball));
     m->tag = OX_SYNC_BALL;      m->tag = OX_SYNC_BALL;
     return m;      return m;
   }
   
   int ox_stderr_init(FILE *fp)
   {
       ox_stderr = (fp != NULL)? fp: (stderr);
       setbuf(ox_stderr, NULL);
 }  }

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

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