=================================================================== RCS file: /home/cvs/OpenXM/src/ox_toolkit/README,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- OpenXM/src/ox_toolkit/README 1999/12/15 02:44:12 1.3 +++ OpenXM/src/ox_toolkit/README 1999/12/15 08:04:50 1.4 @@ -1,34 +1,44 @@ # Author: ¾®¸¶¸ùǤ @ ¶âÂôÂç³ØÍý³ØÉô·×»»²Ê³Ø¶µ¼¼ # URI: http://omega.s.kanazawa-u.ac.jp/ohara/ -# $OpenXM: OpenXM/src/ox_toolkit/README,v 1.2 1999/12/15 01:59:58 ohara Exp $ +# $OpenXM: OpenXM/src/ox_toolkit/README,v 1.3 1999/12/15 02:44:12 ohara Exp $ -¡ù libox.a ¥Þ¥Ë¥å¥¢¥ë¡£ +/*&ja ox_toolkit ¥æ¡¼¥¶¥¬¥¤¥É +*/ +/*&en A user's guide for ox_toolkit. + +*/ +/*&ja libox.a ¤òÍøÍѤ¹¤ë¤Ë¤Ï¼¡¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +*/ +/*&en +How to use OpenXM C library? +The OpenXM C libraiy has header files: +*/ +/*&common + #include #include #include -³Æ¹½Â¤ÂΤª¤è¤Ó´Ø¿ô¤ÎÀë¸À¤Ï¤½¤ì¤¾¤ì¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£ -¤³¤³¤Ç¤Ï´ðËÜŪ¤Ê¹Í¤¨Êý¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ - -¤Þ¤º¡¢¤¹¤Ù¤Æ¤Î CMO ¥Ç¡¼¥¿¤Ï¤½¤Î¥Ç¡¼¥¿·¿¤ËÂбþ¤·¤¿ new ´Ø¿ô¤Ë¤è¤Ã¤ÆÀ¸À® -¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð CMO_ZZ ·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï new_cmo_zz() ´Ø¿ô¤Ë¤è¤Ã¤ÆÀ¸ -À®¤µ¤ì¤Þ¤¹¡£ - -CMO ¥Ç¡¼¥¿¤òÁ÷¼õ¿®¤¹¤ë¤Ë¤Ï¡¢CMO ¤Î¼ïÎà¤Ë¤è¤é¤º send_cmo(), -receive_cmo() ¤òÍѤ¤¤Þ¤¹¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï OX ¥Ø¥Ã¥À¤ò°·¤¤¤Þ¤»¤ó¤Î¤Ç¡¢OX -¥á¥Ã¥»¡¼¥¸¤òÁ÷¼õ¿®¤¹¤ë¤È¤­¤Ë¤Ï send_ox_tag(), receive_ox_tag() ¤ò¤½¤Î -Á°¤Ë¸Æ¤ÖɬÍפ¬¤¢¤ê¤Þ¤¹¡£ - +*/ +/*&ja 1. ¥Ç¡¼¥¿·¿ ¤³¤Î¥Ä¡¼¥ë¥­¥Ã¥È¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë³Æ¹½Â¤ÂΤÎÀ¸À®¤Ë¤Ä¤¤¤Æ¤Ï¼¡Àá¤ò»²¾È¤»¤è¡£ 1.1 CMO (Common Math Object) ¼¡¤Î¥Ç¡¼¥¿·¿(¹½Â¤ÂÎ)¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ +*/ +/*&en +1. Types +1.1 CMO (Common Math Object) +The following structures is defined in ox.h: +*/ +/*&common + cmo cmo_null cmo_int32 @@ -46,25 +56,55 @@ cmo_distributed_polynomial cmo_indeterminate cmo_error2 +*/ +/*&ja ¤³¤Î¤¦¤Á cmo ·¿¤Ï¤¤¤ï¤ÐÃê¾Ý´ðÄ쥯¥é¥¹¤ËÁêÅö¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢¤³¤Î·¿¤Î¥ª ¥Ö¥¸¥§¥¯¥È¤òÌÀ¼¨Åª¤Ë¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£¤³¤Î¥¯¥é¥¹¤Ï¥Ý¥¤¥ó¥¿·¿¤Î¥­¥ã¥¹¥È¤Î ¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿ cmo_distributed_polynomial ¤Ï cmo_list ¤ÎÇÉ À¸¥¯¥é¥¹¤Ç¤¢¤ë¤È»×¤Ã¤Æ¤â¤è¤¤¡£ +*/ +/*&en +The cmo above is similer to abstract base class; +you never make an object of cmo class. + +*/ +/*&ja 1.2 OX ¥ª¥Ö¥¸¥§¥¯¥È ¼¡¤Î¥Ç¡¼¥¿·¿(¹½Â¤ÂÎ)¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ +*/ +/*&en +1.2 OX objects +The following structures is defined in ox.h: +*/ +/*&common ox ox_command ox_data +*/ +/*&ja ¤³¤Î¤¦¤Á¡¢ox ·¿¤ÏÃê¾Ý´ðÄ쥯¥é¥¹¤Ê¤Î¤Ç¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ò¤Ä¤¯¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +*/ +/*&en +The ox above is abstract base class. + +*/ +/*&ja 2. ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À® ¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë¡¢new ´Ø¿ô·²¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£¤½¤ì¤¾¤ì¤Î´Ø ¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Æ¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ +*/ +/*&en +2. How to make CMObjects? +You may use new functions which generate an object and return its pointer. +*/ +/*&common + new_cmo_null(); new_cmo_int32(int i); new_cmo_string(char* s); @@ -83,6 +123,8 @@ new_cmo_ring_by_name(cmo* ob); new_cmo_indeterminate(cmo* ob); new_cmo_error2(cmo* ob); +*/ +/*&ja 3. ¹â¿å½à API ¹â¿å½à API ¤Ï¡ÖOpenXM ¥¯¥é¥¤¥¢¥ó¥È¡×¤«¤éÍøÍѤ¹¤ë¤³¤È¤òÁ°Äó¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£ @@ -90,10 +132,23 @@ new_cmo_error2(cmo* ob); 3.1 ÄÌ¿®¤Î³«»Ï ÄÌ¿®¤ò³«»Ï¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¼¡¤Î´Ø¿ô¤Î¤¤¤º¤ì¤«¤òÍøÍѤ¹¤ë¡£ +*/ +/*&en +3. High-level API +High-level API is prepared for implementation of your OpenXM clients. + +3.1 How to make connection to OpenXM server? + +You may call ox_start or ox_start_insecure_nonreverse. +*/ +/*&common + ox_file_t ox_start(char* host, char* prog1, char* prog2); ox_file_t ox_start_insecure_nonreverse(char* host, short portControl, short portStream); +*/ +/*&ja Âè°ì¤Î´Ø¿ô¤Ï¡¢¥í¡¼¥«¥ë¥Þ¥·¥ó¾å¤Ë OpenXM ¥µ¡¼¥Ð¤òµ¯Æ°¤·¡¢¤½¤Î¥µ¡¼¥Ð¤È¤Î ´Ö¤Ë"reverse ¥â¡¼¥É"¤ÇÄÌ¿®Ï©¤ò³«Àߤ¹¤ë¡£ÄÌ¿®¤Ë»È¤ï¤ì¤ë¥Ý¡¼¥ÈÈÖ¹æ¤Ï¼«Æ° Ū¤ËÀ¸À®¤µ¤ì¤ë¡£host ¤Ï¥í¡¼¥«¥ë¥Þ¥·¥ó¤Î¥Û¥¹¥È̾(¤¢¤ë¤¤¤Ï "localhost")¡¢ @@ -109,23 +164,51 @@ portStream ¤Ï·×»»¥µ¡¼¥Ð¤È¤ÎÄÌ¿®¤Î¤¿¤á¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ç¤¢¤ ¤½¤ì¤¾¤ì¤Î´Ø¿ô¤Ï¥µ¡¼¥Ð(Àµ³Î¤Ë¤ÏÆó¤Ä¤Î¥µ¡¼¥Ð¤ÎÁÈ)¤Î¼±Ê̻ҤòÊÖ¤¹¡£ ¤³¤Î¼±Ê̻ҤϹâ¿å½à API ¤Î³Æ´Ø¿ô¤ÇÍøÍѤµ¤ì¤ë¡£ +*/ +/*&ja 3.2 ÄÌ¿®¤Î½ªÎ» ÄÌ¿®¤Î½ªÎ»¤Î¤¿¤á¤Ë¤Ï¼¡¤ÎÆó¤Ä¤Î´Ø¿ô¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£ +*/ +/*&en +3.2 How to close connection to OpenXM server? + +You may call ox_close or ox_shutdown. + +*/ +/*&common void ox_close(ox_file_t sv); void ox_shutdown(ox_file_t sv); +*/ +/*&ja Âè°ì¤Î´Ø¿ô¤Ï¥³¥ó¥È¥í¡¼¥ë¥µ¡¼¥Ð¤Ë SM_control_kill ¤òÁ÷¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ¥µ¡¼¥Ð¤ò½ªÎ»¤µ¤»¤ë¡£ÂèÆó¤Î´Ø¿ô¤Ï·×»»¥µ¡¼¥Ð¤Ë SM_shutdown ¤òÁ÷¤ë¤³¤È¤Ë ¤è¤Ã¤Æ¡¢¥µ¡¼¥Ð¤ò½ªÎ»¤µ¤»¤ë(ͽÄê)¡£ +/* +/*&ja 3.3 SM ¥³¥Þ¥ó¥É¤ÎÁ÷¿® +*/ +/*&en +3.3 How to command to OpenXM stack machine? + +*/ +/*&common void ox_push_cmd(ox_file_t sv, int sm_code); +*/ +/*&ja ¥µ¡¼¥Ð¤Ë¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¥³¥Þ¥ó¥É¤òÁ÷¤ë¡£¥³¥Þ¥ó¥É¤Ï¥³¥Þ¥ó¥ÉÈÖ¹æ¤ÇÍ¿¤¨¤ë¡£ +*/ +/*&en +This function send operation code to an OpenXM stack machine. +Table of opecode is defined in oxtag.h. +*/ +/*&ja 3.4 CMO ¤ÎÁ÷¼õ¿® void ox_push_cmo(ox_file_t sv, cmo *c); @@ -173,38 +256,66 @@ cmo_mathcap* ox_mathcap(ox_file_t sv); Mathcap ¤ò¼õ¤±¼è¤ë¡£¸½ºß¤Ï Mathcap ¤Î½èÍý¤Ï¥æ¡¼¥¶¥×¥í¥°¥é¥à¤ËǤ¤µ¤ì¤Æ¤¤¤ë¡£ ¤¤¤º¤ì¤³¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤ëͽÄê¡£ +*/ +/*&ja 4. Äã¿å½à API Äã¿å½à API ¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òľÀÜÍøÍѤ¹¤ë¡£ 4.1 ÄÌ¿®¤Ë»È¤ï¤ì¤ë¥Ð¥¤¥È¥ª¡¼¥À¤Î·èÄê +*/ +/*&en +4. Low-level API. + +4.1 How to decide a byte order of integers? + +*/ +/*&common int decideByteOrderServer(int fd, int order); +*/ +/*&ja ¤³¤Î¥Ä¡¼¥ë¥­¥Ã¥È¤Ï¡¢¥µ¡¼¥Ð¤¬³«»Ï¤µ¤ì¤ë¤È¤­¤Ë¤Ï¤¹¤Ç¤ËÄÌ¿®Ï©¤¬ÀßÄꤵ¤ì¤Æ ¤¤¤ë¤¬¡¢¤½¤ÎÄÌ¿®Ï©¤ËÍѤ¤¤ë¥Ð¥¤¥È¥ª¡¼¥À¤Î·èÄê¤Ï¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤È²¾Äꤷ¤Æ ¤¤¤ë¡£¾Ü¤·¤¯¤Ï¡¢¹â»³-ÌîϤ, "OpenXM ¤ÎÀ߷פȼÂÁõ" ¤ò»²¾È¤»¤è¡£ (Ãí°Õ) ¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¤Î¥Ð¥¤¥È¥ª¡¼¥À¤ÎÀßÄê¤Ï¡¢¹â¿å½à API ¤Ç¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤ë¡£ +*/ +/*&common 4.2 int send_int32(int fd, int integer); +*/ +/*&ja fd ¤Ë 32bit À°¿ô¤ò½ñ¤­¹þ¤à¡£ +*/ +/*&common int receive_int32(int fd); +*/ +/*&ja fd ¤«¤é 32bit À°¿ô¤òÆɤ߹þ¤à¡£ +*/ +/*&common 4.3 int send_cmo(int fd, cmo* m); +*/ +/*&ja fd ¤Ë cmo ¤ò½ñ¤­¹þ¤à¡£ +*/ +/*&common cmo* receive_cmo(int fd); +*/ +/*&ja fd ¤«¤é cmo ¤òÆɤ߹þ¤à¡£ 4.4 @@ -231,3 +342,4 @@ int send_ox_cmo(int fd, cmo* m); void send_ox_command(int fd, int sm_command); ox ¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë¡£ +*/ \ No newline at end of file