-- Transport mechanism Registration Server: Defs for access to entries
-- [Ibis]<Grapevine>Pilot>RegAccessDefs.mesa

-- Andrew Birrell  24-Jun-81 10:41:26
-- Hankins	13-Aug-84  8:20:40	(Klamath update - removing STOPs)

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

RegAccessDefs: DEFINITIONS =

  BEGIN

  RegAccessInit: PROCEDURE;
  RegAccessMSMailEnabled: PROCEDURE;

  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.