## xclient-to-sequencer.pkg
#
# This port handles requests from xclient imps to
#
#
src/lib/x-kit/xclient/src/wire/xsequencer-ximp.pkg#
# Ultimately, these requests come from widgets and get
# sent to the X server.
#
# For the big picture see the imp dataflow diagrams in
#
#
src/lib/x-kit/xclient/src/window/xclient-ximps.pkg#
# This port is not intended to be visible at the widget level.
# Widgets should be using
#
#
src/lib/x-kit/xclient/src/window/windowsystem-to-xserver.pkg#
# Current clients include:
#
#
src/lib/x-kit/xclient/src/window/cs-pixmap.pkg#
src/lib/x-kit/xclient/src/window/selection-ximp.pkg#
src/lib/x-kit/xclient/src/window/xsession-junk.pkg#
src/lib/x-kit/xclient/src/window/cs-pixmat.pkg#
src/lib/x-kit/xclient/src/window/font-index.pkg#
src/lib/x-kit/xclient/src/window/window.pkg#
src/lib/x-kit/xclient/src/window/window-watcher-ximp.pkg#
src/lib/x-kit/xclient/src/window/rw-pixmap.pkg#
src/lib/x-kit/xclient/src/window/windowsystem-to-xserver.pkg#
src/lib/x-kit/xclient/src/window/xsession-ximps.pkg#
src/lib/x-kit/xclient/src/window/xclient-ximps.pkg#
src/lib/x-kit/xclient/src/window/keymap-ximp.pkg#
src/lib/x-kit/xclient/src/window/xserver-ximp.pkg#
src/lib/x-kit/xclient/src/iccc/atom-ximp.pkg#
src/lib/x-kit/xclient/src/stuff/xclient-unit-test.pkg#
src/lib/x-kit/xclient/src/wire/xsocket-ximps.pkg#
src/lib/x-kit/xclient/src/wire/xsequencer-ximp.pkg#
src/lib/x-kit/widget/xkit/app/guishim-imp-for-x.pkg#
src/lib/x-kit/widget/xkit/app/exercise-x-appwindow.pkg#
src/lib/x-kit/widget/widget-unit-test.pkg#
#
# Compiled by:
#
src/lib/x-kit/xclient/xclient-internals.sublibstipulate
include package threadkit; # threadkit is from
src/lib/src/lib/thread-kit/src/core-thread-kit/threadkit.pkg #
# package xet = xevent_types; # xevent_types is from
src/lib/x-kit/xclient/src/wire/xevent-types.pkg package v1u = vector_of_one_byte_unts; # vector_of_one_byte_unts is from
src/lib/std/src/vector-of-one-byte-unts.pkg package g2d = geometry2d; # geometry2d is from
src/lib/std/2d/geometry2d.pkgherein
# This port is implemented in:
#
#
src/lib/x-kit/xclient/src/wire/xsequencer-ximp.pkg #
package xclient_to_sequencer {
#
Xerror = { seqn: Unt, msg: v1u::Vector }; # Sequence number, message-bytes.
Reply_Mail
= REPLY_LOST # The reply was lost somewhere in transit.
| REPLY v1u::Vector
# A normal reply.
| REPLY_ERROR v1u::Vector
# The server returned an error message.
;
Xclient_To_Sequencer
=
{
send_xrequest: v1u::Vector -> Void,
send_xrequests: List( v1u::Vector ) -> Void,
send_xrequest_and_read_reply: v1u::Vector -> Mailop( v1u::Vector ),
send_xrequest_and_pass_reply: v1u::Vector -> Replyqueue -> (v1u::Vector -> Void) -> Void,
send_xrequest_and_read_reply': (v1u::Vector, Oneshot_Maildrop(Reply_Mail)) -> Void,
# Can't we get rid of these???
send_xrequest_and_return_completion_mailop: v1u::Vector -> Mailop( Void ),
send_xrequest_and_return_completion_mailop': (v1u::Vector, Oneshot_Maildrop(Reply_Mail)) -> Void
# We provide no call to close the socket;
# We regard that as not our responsibility.
# Unused so not implemented:
#
# sent_xrequest_and_read_replies: (v1u::Vector, (v1u::Vector -> Int)) -> Mailop( v1u::Vector ),
};
}; # package xsequencer_ximp_from_app_clientport
end;