netobjrt/src/WireRep.i3


Copyright (C) 1994, Digital Equipment Corp.
WireRep.i3
 The WireRep defines the network representation of network objects 
   and provides procedures to generate and manipulate values of this 
   type. 
   

INTERFACE WireRep;

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, ..}};
A 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.