<> <> <> DIRECTORY Rope; NetAddressing: CEDAR DEFINITIONS = { ROPE: TYPE ~ Rope.ROPE; Error: ERROR [codes: LIST OF ATOM, msg: ROPE]; <> FormatError: PROC [codes: LIST OF ATOM, msg: ROPE] RETURNS [ROPE]; Address: TYPE ~ RECORD [ protocolFamily: ATOM, host, socket: ROPE]; <> nullAddress: Address ~ [NIL, NIL, NIL]; FormatAddress: PROC [addr: Address, socket: BOOL] RETURNS [ROPE]; <> ParseAddress: PROC [ROPE] RETURNS [Address]; <> EncodeAddress: PROC [Address] RETURNS [ROPE]; DecodeAddress: PROC [ROPE] RETURNS [Address]; <> Canonicalize: PROC [Address] RETURNS [Address]; <> EqualAddrs: PROC [Address, Address] RETURNS [BOOL]; HashAddr: PROC [Address] RETURNS [CARDINAL]; EqualModSocket: PROC [a1, a2: Address] RETURNS [BOOL]; SetSocket: PROC [Address, ROPE] RETURNS [Address]; ExtractSocket: PROC [Address] RETURNS [ROPE]; EqualAddrReferents: PROC [key1, key2: REF ANY] RETURNS [BOOL]; HashAddrReferent: PROC [key: REF ANY] RETURNS [CARDINAL]; <> FromNnAddress: PROC [addr: ROPE, family: ATOM] RETURNS [Address]; <> ToNnAddress: PROC [Address] RETURNS [addr: ROPE, family: ATOM]; }.