Showing changes from revision #1 to #2:
Added | Removed | Changed
Message Block | |
---|---|
+20 | Pointer to buffer where receiver should put data |
+24 | Size of buffer |
Tasks should send this message in response to receiving a Message_RAMFetch message, and after subsequently writing the data to the given buffer, using Wimp_TransferBlock.
Since you cannot guarantee that the buffer offered is large enough for all your data, you should keep a record (across Wimp_Polls) of how much data has been transmitted so far.
If the number of bytes written doesn’t fill the buffer, then this will be the last message in the dialoge. You should not expect a reply, sending it as a User_Message.
If the buffer does get filled, then you should send this message as a User_Message_Recorded and expect further Message_RAMFetch messages.
Possible responses from the data-saving tasks:
Possible responses from the data-loading task:
If this message returns unanswered as a User_Message_Acknowledge, then you should abort the data transfer and report an error.