<> <> <> <> <> <> <> <<>> <> <<>> <> <<>> <> <> <> <> <> <> <> <> <<>> <> <> <> <> <> <> <> <> <> <> <> <*C+/%/EDEDEDCD**e+//%F**edC@2400;%>> <> <<>> <> <> <> <<>> <> <> <> <<>> DIRECTORY BasicTime USING [ GMT, nullGMT ], GVBasics USING [ Password ], LoganBerry USING [ Entry ], Rope USING [ ROPE ], RPC USING [ EncryptionKey ], VoiceUtils USING [ NetAddress ] ; NameDB: CEDAR DEFINITIONS = { ROPE: TYPE = Rope.ROPE; AttributeSeq: TYPE = LoganBerry.Entry; Authenticity: TYPE = ATOM; -- { $unknown, $authentic, $bogus, $nonexistent, $perhaps }; <> <> <> <> <> <> GetAttributes: PROC[rName: ROPE, key: ATOM_$rname, dbType: ATOM _ $white] RETURNS [value: AttributeSeq]; <> <> <<>> GetAttribute: PROC [ rName: ROPE, attribute: ATOM, default: ROPE_NIL, key: ATOM_$rname] RETURNS [value: ROPE]; <> <<>> IsAuthenticated: PROC[rName: ROPE] RETURNS [authenticity: Authenticity]; <> <<>> HostFromInstance: PROC[instance: Rope.ROPE] RETURNS [VoiceUtils.NetAddress]; < [[173B], [270B]], via the connect entry for the instance.>> Authenticate: PROC[rName: ROPE, key: RPC.EncryptionKey] RETURNS [authenticity: Authenticity]; <> <<>> SetAttribute: PROC [rName: ROPE, attribute: ATOM, value: ROPE]; <> SetAttributeTimed: PROC [ rName: Rope.ROPE, attribute: ATOM, value: Rope.ROPE, time: BasicTime.GMT_BasicTime.nullGMT, interval: INT_0]; <, or after the specified interval, expressed in seconds. Expiration means that subsequent lookups will not yield the attribute, and that the system is free to eliminate the entry entirely. Before expiration, this entry entirely masks the existence of non-temporary entries with the same key for client reads. A client write to the permanent entry eliminates the timed one.>> Error: ERROR [ec: ATOM, explanation: Rope.ROPE _ NIL]; <> }.