home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn User 3
/
AUCD3.iso
/
airport
/
browsers
/
arcweb190
/
!ArcWeb
/
h
/
requester
Wrap
Text File
|
1997-06-15
|
12KB
|
313 lines
/*
* ArcWeb
*
* Copyright (C) Stewart Brodie, 1994, 1995, 1996, 1997
*
* This product is supplied under the terms laid down in the `Terms' file.
*
* This file may be distributed freely with any ArcWeb related software,
* provided it meets with the definition of 'free' in the 'Terms' file.
*
* This file: requester.h
*
* A WIMP-library-independent interface definition. All structures are
* defined in terms of basic types.
*
* Last changes: for ArcWeb 1.77 - new flags.
*
*/
#ifndef _requester_h_included
#define _requester_h_included
#ifdef __cplusplus
extern "C" {
#endif
#define arcweb_MAXURL (200)
#define msg_Arcweb__base (0x4A240)
#define msg_Arcweb__last (msg_Arcweb__base + 0x3f)
#define swi_Arcweb__base (msg_Arcweb__base)
#define err_Arcweb__base (0x80D200)
typedef enum {
Message_ArcwebFetchRequest = (msg_Arcweb__base + 0),
Message_ArcwebFetchDone = (msg_Arcweb__base + 1),
Message_ArcwebRenderRequest = (msg_Arcweb__base + 2),
Message_ArcwebRenderDone = (msg_Arcweb__base + 3),
Message_ArcwebPostRequest = (msg_Arcweb__base + 4),
Message_ArcwebPostDone = (msg_Arcweb__base + 5),
Message_ArcwebEMailRequest = (msg_Arcweb__base + 6),
Message_ArcwebEMailDone = (msg_Arcweb__base + 7),
Message_ArcwebImageSize = (msg_Arcweb__base + 16),
Message_ArcwebImageComplete = (msg_Arcweb__base + 17),
Message_ArcwebXferControl = (msg_Arcweb__base + 18),
Message_ArcwebXferControlAck = (msg_Arcweb__base + 19),
Message_ArcwebQuit = (msg_Arcweb__base + 32),
Message_ArcwebExpire = (msg_Arcweb__base + 33),
Message_ArcwebAbortRequest = (msg_Arcweb__base + 34),
Message_ArcwebTransferStatus = (msg_Arcweb__base + 35),
Message_ArcwebConfigure = (msg_Arcweb__base + 36),
Message_ArcwebExternalLaunch = (msg_Arcweb__base + 37),
Message_ArcwebLaunchDone = (msg_Arcweb__base + 38),
Message_ArcwebWebBrowser = (msg_Arcweb__base + 39),
Message_ArcwebColourSelected = (msg_Arcweb__base + 40),
Message_ArcwebPermanentMove = (msg_Arcweb__base + 41),
Message_IntertalkRequest = (0x4AF80)
} arcweb_msgid;
/* Use these constants in the flag words in the messages below */
#define arcweb_FLAGS_error 0x80000000
#define arcweb_FLAGS_typeknown 0x40000000
#define arcweb_FLAGS_inhibit_render 0x20000000
#define arcweb_FLAGS_want_symlink 0x10000000
#define arcweb_FLAGS_url_changed 0x08000000
#define arcweb_FLAGS_close_previous 0x04000000
#define arcweb_FLAGS_image_fetch 0x02000000
#define arcweb_FLAGS_error_handled 0x01000000
#define arcweb_FLAGS_inhibit_display 0x00800000
#define arcweb_FLAGS_extended_url 0x00400000
#define arcweb_FLAGS_email_complete 0x00200000
#define arcweb_FLAGS_reload 0x00100000
#define arcweb_FLAGS_load_to_disc 0x00080000
#define arcweb_FLAGS_forcing_reload 0x00040000
#define arcweb_FLAGS_reserved_mask 0x00020000
#define arcweb_FLAGS_extended_type 0x00010000
#define arcweb_FLAGS_typemask 0x0001ffff
#define arcweb_FLAGS_stream 0x00004000
#define arcweb_FLAGS_rnfr 0x00002000
#define arcweb_FLAGS_dele 0x00001000
#define arcweb_FLAGS_rmdir 0x00000800
#define arcweb_FLAGS_mkdir 0x00000400
#define arcweb_FLAGS_put 0x00000200
#define arcweb_FLAGS_forcing_images 0x00000100
#define arcweb_FLAGS_referer_available 0x00000080
#define arcweb_FLAGS_xfer_control 0x00000020
#define arcweb_FLAGS_images_disabled 0x00000010
#define arcweb_FLAGS_post_was_put 0x00000008
#define arcweb_FLAGS_fast_images 0x00000004
#define arcweb_FLAGS_local_launch 0x00000002
#define arcweb_FLAGS_document_fetch 0x00000000
#define arcweb_XFER_xmit_running 0x00000001
#define arcweb_XFER_recv_running 0x00000002
#define arcweb_XFER_xmit_complete 0x00000004
#define arcweb_XFER_recv_complete 0x00000008
#define arcweb_XFER_misc_running 0x00000010
#define arcweb_XFER_reserved 0xffffffe0
/* Flag bit meanings:
*
* Responses only:
* bits 0 to 15 : RISC OS/ArcWeb filetype indicator
* bit 16 : if set, type is arcweb_TYPES_*, else RISC OS type
*
* Requests only:
* bit 1 : the previous page was a local: URL
* bit 2 : if set, 'fast images' are being used - not implemented yet
* bit 3 : if set, the POST request should be sent as a PUT instead
* bit 4 : if set, user has disabled image fetching
* bit 5 : if set, control transfer protocol is available
* bit 6 Reserved - must be zero
* bit 7 Internal use only - must be zero for non-ArcWeb tasks
* bit 8 If set, user has forced image fetching for this fetch
* bit 9 If set, user requested a PUT operation
* bit 10 If set, user requested the URI be created as a directory
* bit 11 If set, user requested the directory URI be deleted
* bit 12 If set, user requested deletion of URI
* bit 13 If set, user requested rename of URI
* bit 14 Reserved - must be zero (or you'll be sorry)
*
* Both:
*
* bits 17 and 18 : reserved (must be preserved in replies)
* bit 19 : if set, user has requested a 'load to disc'
* bit 20 : if set, this is a reload, so flush any cache
* bit 21 : if set, the e-mail message is complete
* bit 22 : if set, this is an extended URL
* bit 23 : if set, ArcWeb will not display the results of the render
* bit 24 : if set, ArcWeb wont raise any error to user
* bit 25 : if set, this is an inline image fetch, not a page fetch
* bit 26 : if set, the previous ArcWeb window should be closed
* bit 27 : if set, URL has been changed (+ is in URL file)
* bit 28 : if set, request use of symbolic link in host filesystem
* bit 29 : if set, (in FetchDone), ArcWeb will not render it
* bit 30 : if set, bits 0-16 are valid, else they are invalid
* bit 31 : if set, the buffer contains an error message
*
*/
typedef struct {
struct arcweb_msghdr { /* message block header. */
int size; /* 20<=size<=256, multiple of 4 */
int task; /* task handle of sender (filled in by wimp) */
int my_ref; /* unique ref number (filled in by wimp) */
int your_ref; /* (0==>none) if non-zero, acknowledge */
arcweb_msgid action; /* message action code */
} hdr;
void *handle; /* MUST be preserved */
int flags; /* See above */
union {
int _arcweb_words[57]; /* Ensure the right size */
char _arcweb_data[228]; /* a char version */
struct {
int localfile; /* *RISC OS* file handle */
union {
int url_file; /* if bit 22 set */
char URL[arcweb_MAXURL]; /* if bit 22 clr */
} url;
} fetch_request;
union {
struct {
int use_given_expiry;
int use_default_expiry;
char date[8]; /* to stop Cv5 warnings */
int response_code;
char mime_type[208]; /* MUST start "MIME:" */
} expiry;
char error[228];
} fetch_done;
struct {
int localfile;
int formfile;
union {
int url_file; /* if bit 22 set */
char URL[arcweb_MAXURL]; /* if bit 22 clr */
} url;
} post_request;
struct {
int localsrc;
int localtmp;
int localdiag;
int locallink;
int size_in_msg;
char fileheader[228-5*sizeof(int)];
} render_request;
union {
struct {
int x_pix;
int y_pix;
} size;
char error[228];
} render_done;
struct {
int formfile;
} email_request;
struct {
char error[228]; /* Do I want this? */
} email_done;
struct {
union {
int url_file; /* if bit 22 set */
char URL[arcweb_MAXURL]; /* if bit 22 clear */
} url;
} expire;
union {
struct {
int use_given_expiry;
int use_default_expiry;
char date[8]; /* to stop Cv5 warnings */
int response_code;
char mime_type[208]; /* MUST start "MIME:" */
} expiry;
char error[228];
} post_done;
struct {
int flags;
int transmit_total;
int transmit_sofar;
int receive_total;
int receive_sofar;
char message[208];
} status_report;
struct {
char reason[228];
} abort_request;
struct {
int renderer_handle;
int x_os_units;
int y_os_units;
} image_size;
struct {
int renderer_handle;
} image_complete;
struct {
char application[228];
} configure;
struct {
union {
int url_file; /* if bit 22 set */
char URL[arcweb_MAXURL]; /* if bit 22 clear */
} url;
} launch_request;
struct {
char error[228];
} launch_done;
struct {
int localfile; /* *RISC OS* file handle */
union {
int url_file; /* if bit 22 set */
char URL[arcweb_MAXURL]; /* if bit 22 clr */
} url;
} xfer_request;
struct {
char error[228];
} xfer_request_ack;
struct {
char browser[228];
} web_browser;
struct {
int background;
int normal;
int link;
int vlink;
int alink;
int no_images;
} colour_selection;
struct {
/* NOTE: These pointers are possibly in app w/s */
/* Must use Wimp_TransferBlock to get them */
const char *from;
int fromsize;
const char *to;
int tosize;
} permanent_move;
} data;
} arcweb_msg; /* use as a wimp_msgstr */
#ifdef __cplusplus
}
#endif
#endif