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