AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
+ 20     pointer to buffer where receiver should put data
+ 24     size of buffer

You should send this message either in response to a DataSave, indicating that you want to use memory transfer, or in response to a RamTransmit, to request more data. It should always be sent as a UserMessage_Recorded, so that if it is unanswered you can either revert to the file transfer protocol, or abort the data transfer.

Before sending this message, you must allocate a buffer for the data-saving task to write data to. You can use the estimated data size from the DataSave message for this purpose, but you should be prepared for more (or less) data to actually be sent.

If you receive a RamTransmit message where the data-saving task has filled the buffer (data transferred=buffer size), then you should reply with this message. If you receive a RamTransmit where the data-saving task has not filled your buffer, then this marks the successful conclusion of the transfer.

If you can't process the received data, you should report an error and abandon the transfer.

Possible responses from the data-saving task:
·     It sends RamTransmit (data successfully written to specified buffer).
·     It doesn't reply (memory transfer not supported/error writing data).

If this message returns unanswered:
·     If no reply is received to the first RamFetch, file transfer should be used instead (send a DataSaveAck).
·     If there is no reply to subsequent messages, then the transfer should be abandoned silently (the other end will already have reported an error).

See PRM 3, page 256.

[sh-index] Back to list of manuals