-- Transport mechanism Registration Server: Defs for access to entries

-- [Juniper]<Grapevine>MS>RegAccessDefs.mesa

-- Andrew Birrell  24-Jun-81 10:41:26

DIRECTORY
BodyDefs	USING[ RName, Timestamp ],
HeapDefs	USING[ ReaderHandle, WriterHandle ],
ProtocolDefs	USING[ RNameType, ReturnCode ],
RegBTreeDefs	USING[ LookupReason, RegState ];

RegAccessDefs: DEFINITIONS =

BEGIN

RegAccess:	PROGRAM;
   -- for RegRestart --

NameState:	TYPE = RECORD[regState: RegBTreeDefs.RegState,
			      type:     ProtocolDefs.RNameType,
			      stamp:    BodyDefs.Timestamp,
			      reader:   HeapDefs.ReaderHandle ];

Lookup:		PROC[name: BodyDefs.RName,
		     reason: RegBTreeDefs.LookupReason]
		RETURNS[ NameState ];

Insert:		PROC[name:    BodyDefs.RName,
		     type:    ProtocolDefs.RNameType,
		     stamp:   POINTER TO BodyDefs.Timestamp,
		     writer:  HeapDefs.WriterHandle,
		     oldInfo: POINTER TO NameState]
		RETURNS[done: BOOLEAN];

Abandon:	PROC[name:    BodyDefs.RName,
		     nameObj: POINTER TO NameState]
		RETURNS[rc: ProtocolDefs.ReturnCode];

END.