PreviousUpNext

15.4.1682  src/lib/x-kit/xclient/src/wire/xclient-to-sequencer.pkg

## 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.sublib



stipulate
    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.pkg
herein


    # 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;




Comments and suggestions to: bugs@mythryl.org

PreviousUpNext