The WireRep
defines the network representation of network objects
and provides procedures to generate and manipulate values of this
type.
INTERFACEAWireRep ; IMPORT SpaceID, Word; CONST Brand = "WireRep"; TYPE T = RECORD byte: ARRAY [0..15] OF BITS 8 FOR [0..255]; END; CONST NullT = T {byte := ARRAY [0..15] OF BITS 8 FOR [0..255] {0, ..}}; CONST SpecialT = T {byte := ARRAY [0..15] OF BITS 8 FOR [0..255] {255, 255, 255, 255, 255, 255, 255, 255, 0, ..}};
WireRep.T
is a value which identifies a concrete network object.
In general, each T
corresponds to one and only one real object
in a network. Furthermore, each T
is identifiable as having
been generated relative to a specific SpaceID.T
. However, there
are two well-known values which are exceptions to this rule. The
value NullT
corresponds to the NIL
network object, and the
value SpecialT
corresponds a {\it special object} which is a
distinguished concrete object in every address space. This special
object is private to the implementation of the network object
runtime.
PROCEDURE New() : T;Generates a new, unique
WireRep.T
value. GetSpaceID(New()
is
equal to SpaceID.Mine()
.
PROCEDURE GetSpaceID(t: T) : SpaceID.T;Returns the
SpaceID.T
associated with the argument WireRep.T
.
the following are for generic tables involving WireRep.T's
PROCEDURE Equal(t1, t2: T) : BOOLEAN; PROCEDURE Hash(t: T) : Word.T; END WireRep.