=================================================================== RCS file: /home/cvs/OpenXM/src/ox_toolkit/testclient.c,v retrieving revision 1.7 retrieving revision 1.17 diff -u -p -r1.7 -r1.17 --- OpenXM/src/ox_toolkit/testclient.c 2000/11/27 09:57:10 1.7 +++ OpenXM/src/ox_toolkit/testclient.c 2016/08/23 06:13:10 1.17 @@ -1,8 +1,11 @@ /* -*- mode: C -*- */ -/* $OpenXM: OpenXM/src/ox_toolkit/testclient.c,v 1.6 2000/11/21 07:59:08 ohara Exp $ */ +/* $OpenXM: OpenXM/src/ox_toolkit/testclient.c,v 1.16 2005/10/12 04:03:37 takayama Exp $ */ /* A sample implementation of an OpenXM client with OpenXM C library */ - +/* Sample input + (OX_DATA, (CMO_STRING,"printf(\"%a\");")) + (OX_COMMAND,(SM_executeStringByLocalParser)) + */ #include #include #include @@ -21,14 +24,14 @@ int dumpx(OXFILE *oxfp, int n) int i; int len = oxf_read(buff, 1, n, oxfp); - fprintf(stderr, "I have read %d byte from socket(%d).\n", len, oxfp->fd); + ox_printf("I have read %d byte from socket(%d).\n", len, oxfp->fd); for(i = 0; i < len; i++) { - fprintf(stderr, "%02x ", buff[i]); + ox_printf("%02x ", buff[i]); if (i%20 == 19) { - fprintf(stderr, "\n"); + ox_printf("\n"); } } - fprintf(stderr, "\n"); + ox_printf("\n"); return len; } @@ -37,44 +40,25 @@ int dumpx(OXFILE *oxfp, int n) static int size = SIZE_CMDLINE; static char cmdline[SIZE_CMDLINE]; -static int prompt() +static void prompt() { fprintf(stdout, "> "); fgets(cmdline, size, stdin); - init_parser(cmdline); } #define VERSION 0x11121500 #define ID_STRING "v0.11121500" -mathcap *oxf_mathcap(OXFILE *oxfp) +void test_0() { - if (oxfp->mathcap == NULL) { - oxfp->mathcap = new_mathcap(); - } - return oxfp->mathcap; -} - -cmo_mathcap *oxf_cmo_mathcap(OXFILE *oxfp) -{ - return mathcap_get(oxf_mathcap(oxfp)); -} - -int test_0() -{ cmo* c = NULL; -#ifdef DEBUG - fprintf(stderr, "testclient:: calling ox_mathcap().\n"); - c = ox_mathcap(sv); - fprintf(stderr, "testclient:: cmo received.(%p)\n", c); -#else + ox_printf("testclient:: calling ox_mathcap().\n"); c = (cmo *)ox_mathcap(sv); -#endif + ox_printf("testclient:: cmo received.(%p)\n", c); print_cmo(c); - fflush(stderr); mathcap_init(VERSION, ID_STRING, "testclient", NULL, NULL); - send_ox_cmo(sv, oxf_cmo_mathcap(sv)); + send_ox_cmo(sv, (cmo *)oxf_cmo_mathcap(sv)); ox_reset(sv); send_ox_cmo(sv, (cmo *)new_cmo_string("N[ArcTan[1]]")); @@ -82,24 +66,24 @@ int test_0() send_ox_command(sv, SM_popCMO); receive_ox_tag(sv); c = receive_cmo(sv); - fprintf(stderr, "testclient:: cmo received.\n"); + ox_printf("testclient:: cmo received.\n"); print_cmo(c); } -int test_1() +void test_1() { cmo *c, *m; mathcap_init(1000, "test!", "testclient", NULL, NULL); - m = oxf_cmo_mathcap(sv); - fprintf(stderr, "testclient:: test cmo_mathcap.\n"); + m = (cmo *)oxf_cmo_mathcap(sv); + ox_printf("testclient:: test cmo_mathcap.\n"); send_ox_cmo(sv, m); send_ox_command(sv, SM_popCMO); receive_ox_tag(sv); c = receive_cmo(sv); - fprintf(stderr, "testclient:: cmo received.(%p)\n", c); + ox_printf("testclient:: cmo received.(%p)\n", c); print_cmo(c); - fputc('\n', stderr); + ox_printf("\n"); } /* Example: @@ -113,17 +97,17 @@ int main(int argc, char* argv[]) ox* m = NULL; cmo* c = NULL; int code; - char *server = "ox_sm1"; + char *server = "ox_asir"; - setbuf(stderr, NULL); + ox_stderr_init(stderr); if (argc>1) { server = argv[1]; } - fprintf(stderr, "testclient:: I use %s as an OX server.\n", server); -/* sv = ox_start("localhost", "ox", server); */ + ox_printf("testclient:: I use %s as an OX server.\n", server); + sv = ox_start("localhost", "ox", server); if (sv == NULL) { - fprintf(stderr, "testclient:: I cannot connect to servers.\n"); + ox_printf("testclient:: I cannot connect to servers.\n"); exit(1); } @@ -131,9 +115,7 @@ int main(int argc, char* argv[]) test_1(); } - setflag_parse(PFLAG_ADDREV); - - while(prompt(), (m = parse()) != NULL) { + while(prompt(), (m = ox_parse_lisp(cmdline)) != NULL) { send_ox(sv, m); if (m->tag == OX_COMMAND) { code = ((ox_command *)m)->command; @@ -142,16 +124,16 @@ int main(int argc, char* argv[]) }else if (code == SM_popCMO || code == SM_popString) { receive_ox_tag(sv); c = receive_cmo(sv); - fprintf(stderr, "testclient:: cmo received.\n"); + ox_printf("testclient:: cmo received.\n"); print_cmo(c); } } } ox_reset(sv); - fprintf(stderr, "The testclient resets.\n"); + ox_printf("The testclient resets.\n"); ox_close(sv); - fprintf(stderr, "The testclient halts.\n"); + ox_printf("The testclient halts.\n"); return 0; }