QuickVoy &51C44
&51C44 QuickVoy_Message
This is a multiple-purpose message allocated to QuickVoy. The base
block (&51C40) has been officially allocated for use by my software
(originally, to replace the &16F00 doors protocol; BBS stuff).
The way this is allocated is a message number is assigned to each
application - QuickVoy uses message &51C44 - and the word at
data%!20 specifies what the message means. data%+24 is the data.
This means, 64 applications can be supported, with 2147483650
possible messages available; which is much more flexible than only
64 messages for one application.
The following codes are received by QuickVoy (data%!20):
1 - QuickVoy_Connect
If not connected, connect now.
2 - QuickVoy_Disconnect
If connected, disconnect now.
3 - QuickVoy_InvokeTransport
Invoke transport - has no effect if not on-line.
data%!24 bit 0 = News fetcher
1 = News sender
2 = Mail fetcher
3 = Mail sender
7 = Self upgrader (assumed to be at
...Utilities.!selfupgrd)
4 - QuickVoy_InvokeActivity
Invokes a scripted activity
data%!24 bit 0 = UPON STARTUP
1 = UPON CONNECT
2 = UPON TIMER
3 = UPON DISCONNECT
4 = UPON QUIT
It is only really safe to call the timed events a little
early; you can cause nasty things to happen by messing with
this.
5 - QuickVoy_RQStatus
Request status; replies code 10.
6 - QuickVoy_MbxWatch
Broadcast by MbxWatch to indicate the status of the mailbox.
Ignored by QuickVoy Small.
data%!24 = Number of messages
data%!28 = Size of all messages
7 - QuickVoy_Email
Broadcast by the email progette in response to a mailto: URL
having been chosen (in the browser).
Ignored by QuickVoy Small.
$(data%+24) = Email address
$(data%+128) = Email subject
The email subject is currently not decoded by the interface
progrette ("...!QuickVoy.Utilities.!mailtourl"), but it is
supported by QuickVoy. You could use this Wimp message to add
your own email requests.
11 - QuickVoy_FetcherReady
Broadcast by fetcher to say that it has loaded and is ready.
Ignored by QuickVoy Small.
12 - QuickVoy_FetcherStatus
Broadcast by fetcher to report on status.
Ignored by QuickVoy Small.
data%!24 = 1 Resolving
2 Connecting socket
3 Sending request
4 Waiting for response from server
5 Fetching data
data%!28 = Amount fetched, if code = 5
data%!32 = Amount to be fetched or 0 if unknown (if code=5)
14 - QuickVoy_FetcherCompleted
Fetch completed.
Ignored by QuickVoy Small.
15 - QuickVoy_FetcherError
Fetcher error.
Ignored by QuickVoy Small.
data%!24 = 1 No stack loaded
2 No resolver loaded
3 Unable to resolve domain
4 Unable to open output file
5 Unable to connect socket
6 Unable to fetch object
7 Internal error, quitting
8 Can't do fetch, already fetching something
9 Invalid input
10 Error overrun when fetching headers
11 Error overrun when fetching data
12 Remote system closed connection
14 Unable to open specifier file ("fetchrq")
15 Unable to parse URL in specifier file
16 No write name in specifier file
16 - QuickVoy_FetcherDied
Broadcast by fetcher when asked to shut down.
Ignored by QuickVoy Small.
data%!24 = Handle of task that requested shutdown, or 0 if a
TaskManager quit.
17 - QuickVoy_FetcherAlternate
Broadcast by fetcher if the actual domain is something other
than the specified domain.
Not currently supported, and can probably be ignored anyway.
$data%+24 = Alternative alias
The following codes are broadcast by QuickVoy (data%!20):
10 - QuickVoy_Status
data%!24 = &796F5651 ("QVoy", for identification)
data%!28 = Version number * 100; if bit 31 is set then
QuickVoy Small is being used.
data%?32 = TRUE if connected, else FALSE.
data%?33 = TRUE if dialling, 2 if logging in, else FALSE.
$data%+36= Login name (like "UKARG/argxx99"), null terminated.
20 - QuickVoy_RQFetcher
Requests the fetcher fetch something. The fetcher will look
for the file ".Utilities.userdata.fetchrq" which
should contain two lines of text:
1 - What to fetch (full URL)
2 - Where to write it to
Won't be broadcast by QuickVoy Small.
21 - QuickVoy_RQFetcherStatus
Requests a status on the fetcher (replies with code 12).
Won't be broadcast by QuickVoy Small.
22 - QuickVoy_RQFetcherDie
Requests the fetcher to abort and exit.
Won't be broadcast by QuickVoy Small.
Using the fetcher
If you really must...
* Load ".Utilities.!fetcher" (this name is fixed, any newer
code will have the same utility name).
* It will, upon loading, broadcast &51C44 with the word at +20 being 11.
You should wait a few seconds for the fetcher to initialise, before
reporting that the fetcher failed to load.
* You create the ".Utilities.userdata.fetchrq" file;
something like:
http://www.heyrick.co.uk/voyager/quickvoy/index.html
IDEFS::Willow.$.misc.qvindex/ht
* Broadcast code 20.
* Wait until you receive code 14, 15, or 16. You will periodically receive
code 12 which you can use to update status displays.
* If fetch completed okay, send code 22 to kill fetcher. If it didn't, then
remove the fetched file as it is likely to be non-existant/incomplete.
Return to QuickVoy index
Copyright © 2000 Richard Murray