ยค FRequest, FResponse

Fudget low-level stream types

Types

data FRequest = XCmd XCommand
              | LCmd LayoutMessage
              | XReq XRequest
              | SReq SocketRequest
              | DReq Request
instance Show FRequest

data FResponse = XEvt XEvent
               | LEvt LayoutResponse
               | XResp XResponse
               | SResp SocketResponse
               | DResp Response
instance Show FResponse

Description

These are the types of the messages in the low level streams of fudgets.

See Also

Request types: XCommand, LayoutMessage, XRequest, SocketRequest, Request.

Response types: XEvent, LayoutResponse, XResponse, SocketResponse, Response.

The fudget type: Fudget.

Notes

Until recently (July 1999), the types of the low level streams were XCommand and XEvent, and the other types of requests and responses were embedded in these types. We have now tried to make the different request types independent of each other to obtain a more modular design. In particular, this will eliminate the need for mutually recursive modules when compiling fudgets with NHC and GHC.

This change apparently introduces an extra level of tagging for many cases (in particular for XCommands and XEvents), so one might suspect that this representation is less efficient. But preliminary observations indicate that the new representation actually speeds up programs by 5-9%. There are in fact cases when the level of tagging is less, e.g. when a fudget receives an XResponse. The clean separation also makes the functions isRequest and isResponse simpler.

Bugs

This page documents work progress. Information on this page is subject to change without notice and does not represent a commitment on the part of the Fudgets corporation.