version 1.4, 2000/11/30 10:27:02 |
version 1.6, 2003/05/07 04:00:30 |
|
|
/* -*- mode: C -*- */ |
/* -*- mode: C -*- */ |
/* $OpenXM: OpenXM/src/oxc/sm.c,v 1.3 2000/11/28 18:11:42 ohara Exp $ */ |
/* $OpenXM: OpenXM/src/oxc/sm.c,v 1.5 2000/12/03 14:32:40 ohara Exp $ */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
|
|
|
|
void push_error(int errcode, cmo* pushback) |
void push_error(int errcode, cmo* pushback) |
{ |
{ |
return push((cmo *)make_error_object(errcode, pushback)); |
return push((cmo *)make_error_object(errcode, pushback)); |
} |
} |
|
|
/* |
/* |
|
|
if (m->tag == CMO_INT32) { |
if (m->tag == CMO_INT32) { |
pops(((cmo_int32 *)m)->i); |
pops(((cmo_int32 *)m)->i); |
}else { |
}else { |
push_error(-1, m); /* m is invalid. */ |
push_error(-1, m); /* m is invalid. */ |
} |
} |
} |
} |
|
|
void sm_run(int code) |
void sm_run(int code) |
Line 88 void sm_run(int code) |
|
Line 88 void sm_run(int code) |
|
if (func != NULL) { |
if (func != NULL) { |
func(stack_oxfp); |
func(stack_oxfp); |
}else { |
}else { |
fprintf(stderr, "oxc: unknown SM code(%d).\n", code); |
ox_printf("oxc: unknown SM code(%d).\n", code); |
} |
} |
} |
} |
|
|
Line 107 int sm_receive_ox() |
|
Line 107 int sm_receive_ox() |
|
break; |
break; |
case OX_COMMAND: |
case OX_COMMAND: |
code = receive_sm_command(stack_oxfp); |
code = receive_sm_command(stack_oxfp); |
fprintf(stderr, "oxc: code = %d.\n", code); |
ox_printf("oxc: code = %d.\n", code); |
sm_run(code); |
sm_run(code); |
break; |
break; |
default: |
default: |
fprintf(stderr, "illeagal message? ox_tag = (%d)\n", tag); |
ox_printf("illeagal message? ox_tag = (%d)\n", tag); |
return 0; |
return 0; |
break; |
break; |
} |
} |
Line 129 int oxf_error(OXFILE *oxfp) |
|
Line 129 int oxf_error(OXFILE *oxfp) |
|
|
|
int sm(OXFILE *oxfp) |
int sm(OXFILE *oxfp) |
{ |
{ |
stack_oxfp = oxfp; |
stack_oxfp = oxfp; |
stack_extend(); |
stack_extend(); |
while (sm_receive_ox()) { |
while (sm_receive_ox()) { |
} |
} |
fprintf(stderr, "oxc: socket(%d) is closed.\n", stack_oxfp->fd); |
ox_printf("oxc: socket(%d) is closed.\n", stack_oxfp->fd); |
} |
} |