version 1.6, 2000/08/22 05:04:18 |
version 1.9, 2000/11/07 06:35:38 |
|
|
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* $OpenXM: OpenXM_contrib2/asir2000/io/ox.c,v 1.5 2000/08/21 08:31:38 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/io/ox.c,v 1.8 2000/09/12 06:05:30 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 94 static struct mathcap my_mc; |
|
Line 94 static struct mathcap my_mc; |
|
static struct mathcap *remote_mc; |
static struct mathcap *remote_mc; |
static int remote_mc_len; |
static int remote_mc_len; |
|
|
|
#if defined(VISUAL) |
|
/* XXX : mainly used in engine2000/io.c, but declared here */ |
|
HANDLE hStreamNotify,hStreamNotify_Ack; |
|
|
|
void cleanup_events() |
|
{ |
|
/* ox_watch_stream may be waiting for hStreamNotify_Ack to be set */ |
|
|
|
ResetEvent(hStreamNotify); |
|
SetEvent(hStreamNotify_Ack); |
|
} |
|
#endif |
|
|
void ox_resetenv(s) |
void ox_resetenv(s) |
char *s; |
char *s; |
{ |
{ |
|
#if defined(VISUAL) |
|
cleanup_events(); |
|
#endif |
fprintf(stderr,"%s\n",s); |
fprintf(stderr,"%s\n",s); |
longjmp(ox_env,1); |
longjmp(ox_env,1); |
} |
} |
Line 114 static int available_cmo[] = { |
|
Line 130 static int available_cmo[] = { |
|
|
|
static int available_sm[] = { |
static int available_sm[] = { |
SM_dupErrors, SM_getsp, SM_popSerializedLocalObject, |
SM_dupErrors, SM_getsp, SM_popSerializedLocalObject, |
SM_popCMO, SM_popString, SM_setName, |
SM_popCMO, SM_popString, SM_pushCMOtag, SM_setName, |
SM_evalName, SM_executeStringByLocalParser, |
SM_evalName, SM_executeStringByLocalParser, |
SM_executeStringByLocalParserInBatchMode, |
SM_executeStringByLocalParserInBatchMode, |
SM_executeFunction, SM_shutdown, SM_pops, |
SM_executeFunction, SM_shutdown, SM_pops, |
Line 438 void wait_for_data(int s) |
|
Line 454 void wait_for_data(int s) |
|
|
|
void ox_send_data(int s,pointer p) |
void ox_send_data(int s,pointer p) |
{ |
{ |
if ( ox_check && !ox_check_cmo(s,(Obj)p) ) |
ERR err; |
error("ox_send_data : Mathcap violation"); |
|
|
if ( ox_check && !ox_check_cmo(s,(Obj)p) ) { |
|
create_error(&err,ox_serial,"ox_send_data : Mathcap violation"); |
|
p = (pointer)err; |
|
} |
begin_critical(); |
begin_critical(); |
ox_write_int(s,OX_DATA); |
ox_write_int(s,OX_DATA); |
ox_write_int(s,ox_serial++); |
ox_write_int(s,ox_serial++); |