Annotation of OpenXM/doc/ascm2001p/ox-messages.tex, Revision 1.3
1.3 ! noro 1: %%$OpenXM: OpenXM/doc/ascm2001p/ox-messages.tex,v 1.2 2001/06/20 03:08:05 takayama Exp $
1.1 noro 2:
3: \section{OX messages}
4:
5: An OX message for TCP/IP is a byte stream consisting of
1.3 ! noro 6: a header and a body.
! 7: %\begin{tabular}{|c|c|}
! 8: %\hline
! 9: %Header & \hspace{10mm} Body \hspace{10mm} \\
! 10: %\hline
! 11: %\end{tabular}.
1.1 noro 12: The header consists of two signed 32 bit integers.
13: The first one is an OX tag
14: and the second one is a serial number of the OX message.
15: %Negative numbers are expressed by the two's complement.
16: %Several byte orders including the network byte order
17: %are allowed and the byte order is determined as a part of
18: %the establishment of a connection. See Section \ref{secsession} for details.
19: The OX messages are classified into three types:
20: DATA, COMMAND, and SPECIAL.
21: %We have currently the following general tags for the OX messages:
22: Typical OX tags are
1.3 ! noro 23: \verb+OX_COMMAND+, \verb+OX_DATA+, \verb+OX_DATA_DATA_OPENMATH_XML+
! 24: and \verb+OX_SYNC_BALL+. The last one belongs to the SPECIAL category.
1.1 noro 25:
26: %\begin{verbatim}
27: %#define OX_COMMAND 513 // COMMAND
28: %#define OX_DATA 514 // DATA
29: %#define OX_SYNC_BALL 515 // SPECIAL
30: %#define OX_DATA_WITH_LENGTH 521 // DATA
31: %#define OX_DATA_OPENMATH_XML 523 // DATA
32: %#define OX_DATA_OPENMATH_BINARY 524 // DATA
33: %#define OX_DATA_MP 525 // DATA
34: %\end{verbatim}
35:
36: %A new OX tag may be added.
37: %The new tag should be classified into DATA or COMMAND.
38: %For example, \verb+ OX_DATA_ASIR_LOCAL_BINARY + was added recently
39: %to send internal serialized objects of Asir via the OpenXM protocol.
40: %This is a tag classified to DATA.
41: %See the web page of OpenXM to add a new tag \cite{openxm-web}.
42:
43: %An OpenXM client admit that its own command sends some OX messages
44: %sequentially at once.
45: %
46: %For example, the asir command
47: %{\tt ox\_execute\_string(P, "Print[x+y]")} sends an OX data message
48: %{\tt (OX\_DATA, (CMO\_STRING, "Print[x+y]"))} and an OX command message
49: %{\tt (OX\_COMMAND, (SM\_executeStringByLocalParser))} to an OpenXM
50: %server.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>