    class
    	FILE_PROTOCOL

    General
    	cluster: transfer
    	description: "The FILE protocol"
    	create: make

    Ancestors
    	DATA_RESOURCE*

    Queries
    	address: FILE_URL
    	address_exists: BOOLEAN
    	bytes_transferred: INTEGER_32
    	count: INTEGER_32
    	error: BOOLEAN
    	error_code: INTEGER_32
    	error_text (code: INTEGER_32): STRING_8
    	has_packet: BOOLEAN
    	hash_code: INTEGER_32
    	Is_count_valid: BOOLEAN
    	is_equal (other: [like Current] FILE_PROTOCOL): BOOLEAN
    	is_hashable: BOOLEAN
    	Is_local: BOOLEAN
    	is_mode_set: BOOLEAN
    	is_open: BOOLEAN
    	is_packet_pending: BOOLEAN
    	is_proxy_supported: BOOLEAN
    	Is_proxy_used: BOOLEAN
    	is_readable: BOOLEAN
    	is_writable: BOOLEAN
    	last_packet: STRING_8
    	last_packet_size: INTEGER_32
    	location: STRING_8
    	mode: INTEGER_32
    	port: INTEGER_32
    	proxy_host: STRING_8
    	proxy_port: INTEGER_32
    	read_buffer_size: INTEGER_32
    	read_mode: BOOLEAN
    	service: STRING_8
    	Supports_multiple_transactions: BOOLEAN
    	timeout: INTEGER_32
    	transfer_initiated: BOOLEAN
    	valid_mode (n: INTEGER_32): BOOLEAN
    	write_mode: BOOLEAN

    Commands
    	close
    	dispose
    	initiate_transfer
    	open
    	put (other: DATA_RESOURCE)
    	read
    	reset_error
    	reset_overwrite_mode
    	reset_proxy
    	reuse_connection (other: DATA_RESOURCE)
    	set_overwrite_mode
    	set_password (pw: STRING_8)
    	set_port (port_no: INTEGER_32)
    	set_proxy (host: STRING_8; port_no: INTEGER_32)
    	set_proxy_information (pi: PROXY_INFORMATION)
    	set_read_buffer_size (n: INTEGER_32)
    	set_read_mode
    	set_timeout (n: INTEGER_32)
    	set_username (un: STRING_8)
    	set_write_mode