[BACK]Return to README CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_toolkit

Diff for /OpenXM/src/ox_toolkit/README between version 1.5 and 1.8

version 1.5, 1999/12/15 09:24:46 version 1.8, 2000/01/19 18:31:33
Line 1 
Line 1 
 # Author: ¾®¸¶¸ùǤ @ ¶âÂôÂç³ØÍý³ØÉô·×»»²Ê³Ø¶µ¼¼  # Author: ¾®¸¶¸ùǤ @ ¶âÂôÂç³ØÍý³ØÉô·×»»²Ê³Ø¶µ¼¼
 # URI:    http://omega.s.kanazawa-u.ac.jp/ohara/  # URI:    http://omega.s.kanazawa-u.ac.jp/ohara/
 # $OpenXM: OpenXM/src/ox_toolkit/README,v 1.4 1999/12/15 08:04:50 ohara Exp $  # $OpenXM: OpenXM/src/ox_toolkit/README,v 1.7 2000/01/14 10:23:34 ohara Exp $
   
 /*&ja ox_toolkit ¥æ¡¼¥¶¥¬¥¤¥É  /*&ja ox_toolkit ¥æ¡¼¥¶¥¬¥¤¥É
   
 */  */
 /*&en A user's guide for ox_toolkit.  /*&en A user's guide for OpenXM C library.
   
 */  */
   /* &ja ¤¤¤­¤µ¤Ä
   ¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï ox_math ¤ª¤è¤Ó math2ox ¤ò³«È¯¤¹¤ë¤¿¤á¤ËÀ߷פµ¤ì¤¿¡£
   ¥é¥¤¥Ö¥é¥ê¼«¿È¤Ë¤Ï¡¢ Mathematica ¤Ë°Í¸¤·¤¿Éôʬ¤Ï¤Ê¤¤¡£
   */
   /* &en Introduction
   
   */
 /*&ja  /*&ja
 libox.a ¤òÍøÍѤ¹¤ë¤Ë¤Ï¼¡¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£  libox.a ¤òÍøÍѤ¹¤ë¤Ë¤Ï¼¡¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
 */  */
 /*&en  /*&en
 How to use OpenXM C library?  How to use OpenXM C library?
   
 The OpenXM C libraiy has header files:  In order to use libox.a, you need to include the following header files:
 */  */
 /*&common  /*&common
   
Line 35  The OpenXM C libraiy has header files:
Line 42  The OpenXM C libraiy has header files:
 1. Types  1. Types
   
 1.1 CMO (Common Math Object)  1.1 CMO (Common Math Object)
 The following structures is defined in ox.h:  The following structures are defined in ox.h:
 */  */
 /*&common  /*&common
   
Line 65  cmo_error2
Line 72  cmo_error2
   
 */  */
 /*&en  /*&en
 The cmo above is similer to abstract base class;  The cmo above is abstract base class; you never make an object of cmo
 you never make an object of cmo class.  class.
   
 */  */
 /*&ja  /*&ja
Line 75  you never make an object of cmo class.
Line 82  you never make an object of cmo class.
 */  */
 /*&en  /*&en
 1.2 OX objects  1.2 OX objects
 The following structures is defined in ox.h:  The following structures are defined in ox.h:
 */  */
 /*&common  /*&common
   
Line 101  The ox above is abstract base class.
Line 108  The ox above is abstract base class.
 /*&en  /*&en
 2. How to make CMObjects?  2. How to make CMObjects?
   
 You may use new functions which generate an object and return its pointer.  Use the following functions to generate an object.  It returns a
 */  pointer to the object.  */ /*&common
 /*&common  
   
 new_cmo_null();  new_cmo_null();
 new_cmo_int32(int i);  new_cmo_int32(int i);
Line 136  new_cmo_error2(cmo* ob);
Line 142  new_cmo_error2(cmo* ob);
 /*&en  /*&en
 3. High-level API  3. High-level API
   
 High-level API is prepared for implementation of your OpenXM clients.  High-level API is prepared to help an implementation of OpenXM clients.
   
 3.1 How to make connection to OpenXM server?  3.1 How to make connections to OpenXM servers?
   
 You may call ox_start or ox_start_insecure_nonreverse.  In order to open a connection to an OpenXM server, you need to call
   ox_start() or to call ox_start_insecure_nonreverse().
 */  */
 /*&common  /*&common
   
Line 165  portStream ¤Ï·×»»¥µ¡¼¥Ð¤È¤ÎÄÌ¿®¤Î¤¿¤á¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ç¤¢¤
Line 172  portStream ¤Ï·×»»¥µ¡¼¥Ð¤È¤ÎÄÌ¿®¤Î¤¿¤á¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ç¤¢¤
 ¤³¤Î¼±Ê̻ҤϹâ¿å½à API ¤Î³Æ´Ø¿ô¤ÇÍøÍѤµ¤ì¤ë¡£  ¤³¤Î¼±Ê̻ҤϹâ¿å½à API ¤Î³Æ´Ø¿ô¤ÇÍøÍѤµ¤ì¤ë¡£
   
 */  */
   /*&en
   The ox_start() function invoke an OpenXM server on its local machine
   and open a connection to the server with "reverse" mode.  The client
   choose a port number of TCP/IP automatically.
   
   The ox_start_insecure_nonreverse() function open a connection to an
   OpenXM server run on a remote host and you need to provide port numbers.
   
   */
 /*&ja  /*&ja
 3.2 ÄÌ¿®¤Î½ªÎ»  3.2 ÄÌ¿®¤Î½ªÎ»
   
Line 172  portStream ¤Ï·×»»¥µ¡¼¥Ð¤È¤ÎÄÌ¿®¤Î¤¿¤á¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ç¤¢¤
Line 188  portStream ¤Ï·×»»¥µ¡¼¥Ð¤È¤ÎÄÌ¿®¤Î¤¿¤á¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ç¤¢¤
   
 */  */
 /*&en  /*&en
 3.2 How to close connection to OpenXM server?  3.2 How to close connections to OpenXM servers?
   
 You may call ox_close or ox_shutdown.  In order to close a connection to an OpenXM server, you need to call
   ox_close() or to call ox_shutdown().
   
 */  */
 /*&common  /*&common
Line 187  void ox_shutdown(ox_file_t sv);
Line 204  void ox_shutdown(ox_file_t sv);
 ¥µ¡¼¥Ð¤ò½ªÎ»¤µ¤»¤ë¡£ÂèÆó¤Î´Ø¿ô¤Ï·×»»¥µ¡¼¥Ð¤Ë SM_shutdown ¤òÁ÷¤ë¤³¤È¤Ë  ¥µ¡¼¥Ð¤ò½ªÎ»¤µ¤»¤ë¡£ÂèÆó¤Î´Ø¿ô¤Ï·×»»¥µ¡¼¥Ð¤Ë SM_shutdown ¤òÁ÷¤ë¤³¤È¤Ë
 ¤è¤Ã¤Æ¡¢¥µ¡¼¥Ð¤ò½ªÎ»¤µ¤»¤ë(ͽÄê)¡£  ¤è¤Ã¤Æ¡¢¥µ¡¼¥Ð¤ò½ªÎ»¤µ¤»¤ë(ͽÄê)¡£
   
 /*  */
 /*&ja  /*&ja
 3.3 SM ¥³¥Þ¥ó¥É¤ÎÁ÷¿®  3.3 SM ¥³¥Þ¥ó¥É¤ÎÁ÷¿®
 */  */
 /*&en  /*&en
 3.3 How to command to OpenXM stack machine?  3.3 How to command to OpenXM stack machines?
 */  */
 /*&common  /*&common
   
Line 201  void  ox_push_cmd(ox_file_t sv, int sm_code);
Line 218  void  ox_push_cmd(ox_file_t sv, int sm_code);
 */  */
 /*&ja  /*&ja
 ¥µ¡¼¥Ð¤Ë¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¥³¥Þ¥ó¥É¤òÁ÷¤ë¡£¥³¥Þ¥ó¥É¤Ï¥³¥Þ¥ó¥ÉÈÖ¹æ¤ÇÍ¿¤¨¤ë¡£  ¥µ¡¼¥Ð¤Ë¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¥³¥Þ¥ó¥É¤òÁ÷¤ë¡£¥³¥Þ¥ó¥É¤Ï¥³¥Þ¥ó¥ÉÈÖ¹æ¤ÇÍ¿¤¨¤ë¡£
   
 */  */
 /*&en  /*&en
 ox_push_cmd() sends an operation code to an OpenXM stack machine.  ox_push_cmd() sends an operation code to an OpenXM stack machine.
 Table of opecode is defined in oxtag.h.  See OpenXM/src/ox_toolkit/oxtag.h for a list of operation codes.
   
 */  */
 /*&ja  /*&ja
   
 3.4 CMO ¤ÎÁ÷¼õ¿®  3.4 CMO ¤ÎÁ÷¼õ¿®
   */
   /*&en
   3.4 How to receive a CMO?
   */
   /*&common
   
 void  ox_push_cmo(ox_file_t sv, cmo *c);  void  ox_push_cmo(ox_file_t sv, cmo *c);
 cmo*  ox_pop_cmo(ox_file_t sv);  cmo*  ox_pop_cmo(ox_file_t sv);
 char* ox_popString(ox_file_t sv);  char* ox_popString(ox_file_t sv);
   
   */
   /*&ja
 ox_push_cmo ¤Ï cmo ¤òÁ÷¿®¡¢ox_pop_cmo ¤Ï cmo ¤ò¼õ¿®¤¹¤ë¡£ox_popString  ox_push_cmo ¤Ï cmo ¤òÁ÷¿®¡¢ox_pop_cmo ¤Ï cmo ¤ò¼õ¿®¤¹¤ë¡£ox_popString
 ¤Ï cmo ¤òʸ»úÎó·Á¼°¤ËÊÑ´¹¤·¤Æ¼õ¿®¤¹¤ë¤¬¡¢ÊÑ´¹¤Î·ë²Ì¤Ï¥µ¡¼¥Ð¤Ë¤è¤Ã¤Æ°Û  ¤Ï cmo ¤òʸ»úÎó·Á¼°¤ËÊÑ´¹¤·¤Æ¼õ¿®¤¹¤ë¤¬¡¢ÊÑ´¹¤Î·ë²Ì¤Ï¥µ¡¼¥Ð¤Ë¤è¤Ã¤Æ°Û
 ¤Ê¤ë¡£  ¤Ê¤ë¡£
   
   */
   /*&en
   */
   /*&ja
 3.5 ¥¹¥¿¥Ã¥¯½èÍý  3.5 ¥¹¥¿¥Ã¥¯½èÍý
   */
   /*&common
   
 int ox_pops(ox_file_t sv, int num);  int ox_pops(ox_file_t sv, int num);
   
   */
   /*&ja
 ¥¹¥¿¥Ã¥¯¾å¤Î num ¸Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÇÑ´þ¤¹¤ë¡£  ¥¹¥¿¥Ã¥¯¾å¤Î num ¸Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÇÑ´þ¤¹¤ë¡£
   
 3.6  */
   /*&ja
   3.6 ÄÌ¿®Ï©¤Î¥Õ¥é¥Ã¥·¥å
   */
   /*&common
   
 int ox_flush(ox_file_t sv);  int ox_flush(ox_file_t sv);
   
   */
   /*&ja
 ÄÌ¿®Ï©¤ò flush ¤¹¤ë(¼ÂºÝ¤Ë¤Ï²¿¤â¤·¤Ê¤¤)¡£  ÄÌ¿®Ï©¤ò flush ¤¹¤ë(¼ÂºÝ¤Ë¤Ï²¿¤â¤·¤Ê¤¤)¡£
   
 3.7  */
   /*&ja
   3.7 ÄÌ¿®¤ÎÃæÃÇ
   */
   /*&common
   
 void ox_reset(ox_file_t sv);  void ox_reset(ox_file_t sv);
   
   */
   /*&ja
 ·×»»¤òÃæÃǤ¹¤ë¡£  ·×»»¤òÃæÃǤ¹¤ë¡£
   
 3.8  */
   /*&ja
   3.8 ¥í¡¼¥«¥ë¸À¸ì¤Ç½ñ¤«¤ì¤¿¥³¥Þ¥ó¥É¤Îɾ²Á
   */
   /*&common
   
 void ox_execute_string(ox_file_t sv, char* str);  void ox_execute_string(ox_file_t sv, char* str);
   
   */
   /*&ja
 ¥µ¡¼¥Ð¤Î¥í¡¼¥«¥ë¸À¸ì¤Ç½ñ¤«¤ì¤¿Ì¿Îá¤òɾ²Á¤·¡¢·ë²Ì¤ò¥¹¥¿¥Ã¥¯¤ËÀѤࡣ  ¥µ¡¼¥Ð¤Î¥í¡¼¥«¥ë¸À¸ì¤Ç½ñ¤«¤ì¤¿Ì¿Îá¤òɾ²Á¤·¡¢·ë²Ì¤ò¥¹¥¿¥Ã¥¯¤ËÀѤࡣ
   
 3.9  */
   /*&ja
   3.9 ´Ø¿ô¸Æ¤Ó½Ð¤·
   */
   /*&common
   
 int   ox_cmo_rpc(ox_file_t sv, char *function, int argc, cmo *argv[]);  int ox_cmo_rpc(ox_file_t sv, char *function, int argc, cmo *argv[]);
   
   */
   /*&ja
 function(argv[1], ...) ¤ò·×»»¤·¡¢·ë²Ì¤ò¥¹¥¿¥Ã¥¯¤ËÀѤࡣ  function(argv[1], ...) ¤ò·×»»¤·¡¢·ë²Ì¤ò¥¹¥¿¥Ã¥¯¤ËÀѤࡣ
   
 3.10  */
   /*&ja
   3.10 Mathcap ¤Î¼õ¿®
   
   */
   /*&common
 cmo_mathcap* ox_mathcap(ox_file_t sv);  cmo_mathcap* ox_mathcap(ox_file_t sv);
   
   */
   /*&ja
 Mathcap ¤ò¼õ¤±¼è¤ë¡£¸½ºß¤Ï Mathcap ¤Î½èÍý¤Ï¥æ¡¼¥¶¥×¥í¥°¥é¥à¤ËǤ¤µ¤ì¤Æ¤¤¤ë¡£  Mathcap ¤ò¼õ¤±¼è¤ë¡£¸½ºß¤Ï Mathcap ¤Î½èÍý¤Ï¥æ¡¼¥¶¥×¥í¥°¥é¥à¤ËǤ¤µ¤ì¤Æ¤¤¤ë¡£
 ¤¤¤º¤ì¤³¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤ëͽÄê¡£  ¤¤¤º¤ì¤³¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤ëͽÄê¡£
 */  */
Line 270  Mathcap ¤ò¼õ¤±¼è¤ë¡£¸½ºß¤Ï Mathcap ¤Î½èÍý¤Ï¥æ¡¼¥¶¥×¥í¥
Line 333  Mathcap ¤ò¼õ¤±¼è¤ë¡£¸½ºß¤Ï Mathcap ¤Î½èÍý¤Ï¥æ¡¼¥¶¥×¥í¥
 In this section, ``fd'' is an identifier of an OpenXM connection.  In this section, ``fd'' is an identifier of an OpenXM connection.
   
 4.1 How to decide a byte order of integers?  4.1 How to decide a byte order of integers?
   
 */  */
 /*&common  /*&common
   
 int decideByteOrderServer(int fd, int order);  int decideByteOrderServer(int fd, int order);
   
 */  */
Line 284  int decideByteOrderServer(int fd, int order);
Line 347  int decideByteOrderServer(int fd, int order);
 (Ãí°Õ) ¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¤Î¥Ð¥¤¥È¥ª¡¼¥À¤ÎÀßÄê¤Ï¡¢¹â¿å½à API ¤Ç¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤ë¡£  (Ãí°Õ) ¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¤Î¥Ð¥¤¥È¥ª¡¼¥À¤ÎÀßÄê¤Ï¡¢¹â¿å½à API ¤Ç¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤ë¡£
 */  */
 /*&en  /*&en
 You must call it when your OpenXM server is initialized.  You need to call it when your OpenXM server is initialized.
 This function always choose the network byte order for integers.  This function always choose the network byte order
   as an expression for integers.
 */  */
 /*&common  /*&common
   
 4.2  4.2
   
   */
   /*&common
 int send_int32(int fd, int integer);  int send_int32(int fd, int integer);
 int receive_int32(int fd);  int receive_int32(int fd);
   
Line 307  receive_int32() reads 32bits integer from an OpenXM co
Line 373  receive_int32() reads 32bits integer from an OpenXM co
   
 4.3  4.3
   
   */
   /*&common
 int  send_cmo(int fd, cmo* m);  int  send_cmo(int fd, cmo* m);
 cmo* receive_cmo(int fd);  cmo* receive_cmo(int fd);
   
Line 323  receive_cmo() reads an CMObject from an OpenXM connect
Line 391  receive_cmo() reads an CMObject from an OpenXM connect
   
 4.4  4.4
   
   */
   /*&common
 int next_serial();  int next_serial();
   
 */  */
Line 330  int next_serial();
Line 400  int next_serial();
 ¥·¥ê¥¢¥ë¥Ê¥ó¥Ð¤òÀ¸À®¤¹¤ë¡£  ¥·¥ê¥¢¥ë¥Ê¥ó¥Ð¤òÀ¸À®¤¹¤ë¡£
 */  */
 /*&en  /*&en
 next_serial() generates serial number for ox message.  next_serial() generates a serial number for ox message.
 */  */
 /*&common  /*&common
   
 4.5  4.5
   
   */
   /*&common
 int  send_ox_tag(int fd, int tag);  int  send_ox_tag(int fd, int tag);
 int  receive_ox_tag(int fd);  int  receive_ox_tag(int fd);
   
Line 346  fd ¤Ë OX ¥á¥Ã¥»¡¼¥¸¤Î¥Ø¥Ã¥À(tag+serial#)¤ò½ñ¤­¹þ¤à¡£¥·
Line 418  fd ¤Ë OX ¥á¥Ã¥»¡¼¥¸¤Î¥Ø¥Ã¥À(tag+serial#)¤ò½ñ¤­¹þ¤à¡£¥·
 fd ¤«¤é OX ¥á¥Ã¥»¡¼¥¸¤Î¥Ø¥Ã¥À(tag+serial#)¤òÆɤ߹þ¤à¡£  fd ¤«¤é OX ¥á¥Ã¥»¡¼¥¸¤Î¥Ø¥Ã¥À(tag+serial#)¤òÆɤ߹þ¤à¡£
 */  */
 /*&en  /*&en
 send_ox_tag() writes a tag and automatically generated serial number  send_ox_tag() writes a tag and an automatically generated serial number
 of an ox message to an OpenXM conection.  of an ox message to an OpenXM conection.
 receive_ox_tag() reads a tag and serial number of an ox message.  receive_ox_tag() reads a tag and a serial number of an ox message.
 */  */
 /*&common  /*&common
   
 4.6  4.6
   
   */
   /*&common
 int  send_ox(int fd, ox* m);  int  send_ox(int fd, ox* m);
 int  send_ox_cmo(int fd, cmo* m);  int  send_ox_cmo(int fd, cmo* m);
 void send_ox_command(int fd, int sm_command);  void send_ox_command(int fd, int sm_command);
Line 361  void send_ox_command(int fd, int sm_command);
Line 435  void send_ox_command(int fd, int sm_command);
 */  */
 /*&ja  /*&ja
 ox ¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë¡£  ox ¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë¡£
 */  
   
   */
   
   /*&ja
   
   5. OX expression ¥Ñ¡¼¥µ
   
   */
   /*&ja
   OpenXM C library ¤Ë¤Ï ʸ»úÎóɽ¸½¤µ¤ì¤¿
   OX expression ¤ª¤è¤Ó CMO expression ¤«¤é¡¢
   ox ¹½Â¤ÂΤޤ¿¤Ï cmo ¹½Â¤ÂΤòÀ¸À®¤¹¤ë¤¿¤á¤Î¥Ñ¡¼¥µ¤¬ÉÕ°¤·¤Æ¤¤¤ë¡£
   
   ¤³¤³¤Ç¤Ï¤³¤Î¥Ñ¡¼¥µ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£
   
   */
   /*&common
   int setflag_parse(int flag);
   
   */
   /*&ja
   setflag_parse(PFLAG_ADDREV) ¤Ë¤è¤Ã¤Æ¡¢CMO ¤Îû½Ìɽ¸½¤òµö¤¹¡£
   
   */
   /*&common
   int init_parser(char *str);
   
   */
   /*&ja
   ¥Ñ¡¼¥µ¤¬½èÍý¤¹¤Ù¤­Ê¸»úÎó¤ò¥»¥Ã¥È¤¹¤ë¡£
   
   */
   /*&common
   cmo *parse();
   
   */
   /*&ja
   Lisp ɽ¸½¤Ë¤è¤ë OX expression, CMO expression ¤Î¹½Ê¸²òÀÏ´ï¡£¤¢¤é¤«¤¸¤á
   ÀßÄꤵ¤ì¤¿Ê¸»úÎó¤ò²òÀϤ·¤Æ ox ¹½Â¤ÂΡ¢¤¢¤ë¤¤¤Ï cmo ¹½Â¤ÂΤòÀ¸À®¤¹¤ë¡£
   */
   /*&ja
   
   7. ÉÕ°¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ
   
   */
   /*&en
   
   7. Sample programs.
   
   */
   /*&common
   testclient
   
   */
   /*&ja
   ¥Æ¥¹¥ÈÍѤµ¤Ê OpenXM ¥¯¥é¥¤¥¢¥ó¥È¡£OX expression ¤òÆþÎϤ·¤ÆÁ÷¿®¤¹¤ë
   ¤³¤È¤Î¤ß²Äǽ¡£SM_popCMO, SM_popString ¤ò´Þ¤à¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤·¤¿¾ì¹ç¤Ë
   ¤Ï¡¢¥µ¡¼¥Ð¤«¤éÁ÷¤é¤ì¤Æ¤¯¤ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
   
   */
   /*&en
   This is a small OpenXM client.  We send an OX message by inputting an
   OX expression and display data messages gotten from a server.
   
   */
   /*&common
   bconv
   
   */
   /*&ja
   ¥Ð¥¤¥È¥³¡¼¥É¥¨¥ó¥³¡¼¥À¡£OX expression ¤¢¤ë¤¤¤Ï CMO expression ¤òÆþÎϤ¹
   ¤ë¤È¡¢Âбþ¤¹¤ë¥Ð¥¤¥ÈÎó¤òɽ¼¨¤¹¤ë¡£
   
   */
   /*&en
   A byte code encoder.  It shows a byte stream which corresponds to an
   OX expression.
   
   /*&common
   ox_Xsample
   
   */
   /*&ja
   GUI ɽ¼¨¤¹¤ë OpenXM ¥µ¡¼¥Ð¤Î¥µ¥ó¥×¥ë¡£
   
   */
   /*&ja
   8. ÉÕÏ¿
   
   8.1 ox.c ¤Ë¤ª¤±¤ë´Ø¿ô¤Î̿̾µ¬Â§
   
   (1) receive_cmo ´Ø¿ô¤ÏCMO¥¿¥°¤È¥Ç¡¼¥¿ËÜÂΤò¼õ¿®¤¹¤ë. ¤³¤Î´Ø¿ô¤Ï CMO¥¿
   ¥°¤ÎÃͤ¬»öÁ°¤Ëʬ¤«¤é¤Ê¤¤¤È¤­¤Ë»ÈÍѤ¹¤ë. ÊÖ¤êÃͤȤ·¤Æ¡¢cmo ¤Ø¤Î¥Ý¥¤¥ó¥¿
   ¤òÊÖ¤¹.
   (2) receive_cmo_X ´Ø¿ô¤Ï, CMO¥¿¥°¤ò¿Æ¤Î´Ø¿ô¤Ç¼õ¿®¤·¤Æ¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë
   ´Ø¿ô¤Ç¡¢¥Ç¡¼¥¿ËÜÂΤΤߤò¼õ¿®¤·¡¢cmo_X ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹.  ¤·¤«¤â¡¢´Ø
   ¿ôÆâÉô¤Ç new_cmo_X ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹.
   (3) send_cmo ´Ø¿ô¤ÏCMO¥¿¥°¤È¥Ç¡¼¥¿ËÜÂΤòÁ÷¿®¤¹¤ë.
   (4) send_cmo_X ´Ø¿ô¤ÏCMO¥¿¥°¤ò¿Æ¤Î´Ø¿ô¤ÇÁ÷¿®¤·¤Æ¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ç¡¢
   ¥Ç¡¼¥¿ËÜÂΤΤߤòÁ÷¿®¤¹¤ë.
   (5) ¤¿¤À¤· receive_ox_tag ¤ò½ü¤¤¤Æ, receive_ox_X ´Ø¿ô¤Ïºî¤é¤Ê¤¤.
   receive_cmo ¤òÍøÍѤ¹¤ë.
   (6) send_ox_X ´Ø¿ô¤Ï OX ¥¿¥°¤ò´Þ¤á¤ÆÁ÷¿®¤¹¤ë.
   (7) ox_X ´Ø¿ô¤Ï°ìÏ¢¤ÎÁ÷¼õ¿®¤ò´Þ¤à¤è¤êÃê¾ÝŪ¤ÊÁàºî¤òɽ¸½¤¹¤ë.  ox_X ´Ø
   ¿ô¤Ï¡¢Âè°ì°ú¿ô¤È¤·¤Æ¡¢ox_file_t·¿¤ÎÊÑ¿ô sv ¤ò¤È¤ë.
   (8) Y_cmo ´Ø¿ô¤È Y_cmo_X ´Ø¿ô¤Î´Ø·¸¤Ï¼¡¤ÎÄ̤ê:
   ¤Þ¤º Y_cmo ´Ø¿ô¤Ç cmo ¤Î¥¿¥°¤ò½èÍý¤·¡¢¥¿¥°¤ò½ü¤¤¤¿»Ä¤ê¤ÎÉôʬ¤òY_cmo_X
   ´Ø¿ô¤¬½èÍý¤¹¤ë.  cmo ¤ÎÆâÉô¤Ë cmo_Z ¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¤¢¤ë¤È¤­¤Ë¤Ï¡¢¤½¤Î¼ï
   Îà¤Ë¤è¤é¤º¤Ë Y_cmo ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹.
   
   */
   

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.8

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