(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "RPC2") (il:filecreated "28-Apr-88 17:29:39" il:{eris}rpc>rpcstruct.\;4 4046 il:|changes| il:|to:| (il:vars il:rpcstructcoms) (il:structures rpc-stream) (file-environments il:rpcstruct) il:|previous| il:|date:| "15-Oct-87 18:49:03" il:{erinyes}medley>rpcstruct.lsp\;1) ; Copyright (c) 1987, 1988 by Stanford University and Xerox Corporation. All rights reserved. (il:prettycomprint il:rpcstructcoms) (il:rpaqq il:rpcstructcoms ((il:props (il:rpcstruct il:makefile-environment il:filetype)) (il:structures rpc-program rpc-procedure rpc-stream authentication))) (il:putprops il:rpcstruct il:makefile-environment (:readtable "XCL" :package "RPC2")) (il:putprops il:rpcstruct il:filetype :compile-file) (defstruct rpc-program " Structure describing a Sun RPC Protocol Remote Program. " (number 0 :type integer) (il:* il:\; "RPC Program Number") (version 0 :type integer) (il:* il:\; "RPC Version Number") name (il:* il:\; "String or Symbol. This name is used only by this program and has no significance to the remote program. The name is assumed to uniquely specify an RPC structure. ") protocol (il:* il:\; "A symbol. Either RPC::UDP or RPC::TCP.") constants (il:* il:\; "List of ( ) pairs.") types (il:* il:\; "List of ( ) pairs") inherits (il:* il:\; "List of names of RPC names whose types and constants are inherited by this RPC.") procedures (il:* il:\; "List of RPC-PROCEDURE structures defining the procedures for this remote program.")) (defstruct rpc-procedure "Strcture defining a single procedure of a SUN RPC Protcol remote program. " name (il:* il:\; "The procedure name. A string or symbol.") (procnum 0 :type integer) (il:* il:\; "The procedure number. An integer.") argtypes (il:* il:\; "List of argument types. May be typenames or typedefs. NIL for no arguments.") resulttypes (il:* il:\; "Same as ARGTYPES except for returned values.")) (defstruct rpc-stream "Holds info and functions for encoding, decoding and executing remote procedure calls" protocol (il:* il:\; " UDP, TCP, or STRING") ipsocket (il:* il:\; "Local IP Socket") instream (il:* il:\; "Incoming (Reply) Stream or Packet") inbyteptr (il:* il:\; "Byte Pointer to current position in incoming data. For UDP it is the byte pointer in the UDP packet. For TCP it is decremented, saying how many bytes left in this RM record before another RM header must be read.") outstream (il:* il:\; "UDP outgoing packet, or outgoing stream used by TCP and STRING.") outbyteptr (il:* il:\; "Byte Pointer to current position in outgoing string used to build RM record for TCP. See page 10 of \"Remote Procedure Call Protocol Specification\" for details of the RM 'Record Marking Standard'.") outstring (il:* il:\; "Used by TCP to encode as string before sending") getbyte (il:* il:\; "Function to read byte of incoming data") getbytes (il:* il:\; "Function to do bulk read of incoming data") getcell (il:* il:\; "Function to get 32 bit two's complement integer of incoming data. Would be better to have 32 bit unsigned as the primitive") getoffset (il:* il:\; "Get current offset into incoming data.") putbyte (il:* il:\; "Function to write byte of outgoing data") putbytes (il:* il:\; "Function to do bulk write of outgoing data.") putcell (il:* il:\; "Function to write 32 bit two's complement integer of outgoing data.") putoffset (il:* il:\; "Set current position in incoming data.") private (il:* il:\; "Can be used by user as desired") os-destaddr (il:* il:\; "Address of the destination. Only used by os-networking.")) (defstruct authentication "Sun RPC Version 2 Authentication Record" type (il:* il:\; "0 = NULL") (il:* il:\; "1 = Unix") (il:* il:\; "2 = Short") string (il:* il:\; "") (il:* il:\; "Encoding of any fields of that type authentication. String is a Common Lisp string rather than an XDR-STRING.")) (il:putprops il:rpcstruct il:copyright ("Stanford University and Xerox Corporation" 1987 1988)) (il:declare\: il:dontcopy (il:filemap (nil))) il:stop