version 1.10, 2003/01/13 12:03:12 |
version 1.17, 2016/08/23 06:13:10 |
|
|
/* -*- mode: C -*- */ |
/* -*- mode: C -*- */ |
/* $OpenXM: OpenXM/src/ox_toolkit/testclient.c,v 1.9 2003/01/11 11:42:32 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 */ |
/* A sample implementation of an OpenXM client with OpenXM C library */ |
|
/* Sample input |
|
(OX_DATA, (CMO_STRING,"printf(\"%a\");")) |
|
(OX_COMMAND,(SM_executeStringByLocalParser)) |
|
*/ |
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
#include <unistd.h> |
#include <unistd.h> |
Line 37 int dumpx(OXFILE *oxfp, int n) |
|
Line 40 int dumpx(OXFILE *oxfp, int n) |
|
static int size = SIZE_CMDLINE; |
static int size = SIZE_CMDLINE; |
static char cmdline[SIZE_CMDLINE]; |
static char cmdline[SIZE_CMDLINE]; |
|
|
static int prompt() |
static void prompt() |
{ |
{ |
fprintf(stdout, "> "); |
fprintf(stdout, "> "); |
fgets(cmdline, size, stdin); |
fgets(cmdline, size, stdin); |
init_parser(cmdline); |
|
} |
} |
|
|
#define VERSION 0x11121500 |
#define VERSION 0x11121500 |
#define ID_STRING "v0.11121500" |
#define ID_STRING "v0.11121500" |
|
|
int test_0() |
void test_0() |
{ |
{ |
cmo* c = NULL; |
cmo* c = NULL; |
#ifdef DEBUG |
|
ox_printf("testclient:: calling ox_mathcap().\n"); |
ox_printf("testclient:: calling ox_mathcap().\n"); |
c = ox_mathcap(sv); |
|
ox_printf("testclient:: cmo received.(%p)\n", c); |
|
#else |
|
c = (cmo *)ox_mathcap(sv); |
c = (cmo *)ox_mathcap(sv); |
#endif |
ox_printf("testclient:: cmo received.(%p)\n", c); |
print_cmo(c); |
print_cmo(c); |
|
|
mathcap_init(VERSION, ID_STRING, "testclient", NULL, NULL); |
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); |
ox_reset(sv); |
send_ox_cmo(sv, (cmo *)new_cmo_string("N[ArcTan[1]]")); |
send_ox_cmo(sv, (cmo *)new_cmo_string("N[ArcTan[1]]")); |
|
|
print_cmo(c); |
print_cmo(c); |
} |
} |
|
|
int test_1() |
void test_1() |
{ |
{ |
cmo *c, *m; |
cmo *c, *m; |
|
|
mathcap_init(1000, "test!", "testclient", NULL, NULL); |
mathcap_init(1000, "test!", "testclient", NULL, NULL); |
m = oxf_cmo_mathcap(sv); |
m = (cmo *)oxf_cmo_mathcap(sv); |
ox_printf("testclient:: test cmo_mathcap.\n"); |
ox_printf("testclient:: test cmo_mathcap.\n"); |
send_ox_cmo(sv, m); |
send_ox_cmo(sv, m); |
send_ox_command(sv, SM_popCMO); |
send_ox_command(sv, SM_popCMO); |
Line 99 int main(int argc, char* argv[]) |
|
Line 97 int main(int argc, char* argv[]) |
|
ox* m = NULL; |
ox* m = NULL; |
cmo* c = NULL; |
cmo* c = NULL; |
int code; |
int code; |
char *server = "ox_sm1"; |
char *server = "ox_asir"; |
|
|
ox_stderr_init(NULL); |
ox_stderr_init(stderr); |
|
|
if (argc>1) { |
if (argc>1) { |
server = argv[1]; |
server = argv[1]; |
} |
} |
ox_printf("testclient:: I use %s as an OX server.\n", server); |
ox_printf("testclient:: I use %s as an OX server.\n", server); |
/* sv = ox_start("localhost", "ox", server); */ |
sv = ox_start("localhost", "ox", server); |
if (sv == NULL) { |
if (sv == NULL) { |
ox_printf("testclient:: I cannot connect to servers.\n"); |
ox_printf("testclient:: I cannot connect to servers.\n"); |
exit(1); |
exit(1); |
Line 117 int main(int argc, char* argv[]) |
|
Line 115 int main(int argc, char* argv[]) |
|
test_1(); |
test_1(); |
} |
} |
|
|
setflag_parse(PFLAG_ADDREV); |
while(prompt(), (m = ox_parse_lisp(cmdline)) != NULL) { |
|
|
while(prompt(), (m = parse()) != NULL) { |
|
send_ox(sv, m); |
send_ox(sv, m); |
if (m->tag == OX_COMMAND) { |
if (m->tag == OX_COMMAND) { |
code = ((ox_command *)m)->command; |
code = ((ox_command *)m)->command; |