<> <> <> DIRECTORY FS, LoganBerry USING [ Entry, OpenDB ], RefID USING [ nullID ], Rope USING [ ROPE ], VoiceUtils USING [ WhereToReport ] ; ThNet: CEDAR DEFINITIONS = { <> PD: TYPE = RECORD [ debug: BOOLEAN, -- Diagnostic and progress display encryptionRequested: BOOLEAN, -- Encrypt RPC encryptVoice: BOOLEAN, -- Separate decision; false for debugging only, please! defaultLarkReports: BOOLEAN_FALSE, -- If TRUE and debug, Lark events reported SOMEwhere. <> autoGVUpdate: BOOLEAN_FALSE, <> ringsInvalid: BOOL_TRUE, -- set to cause recreation of standard ring tunes tonesVolume: CARDINAL _ 2, defaultRingVolume: CARDINAL _ 2, subduedVolumeInterval: CARDINAL_1, feepVolume: CARDINAL _ 0, serviceGuaranteedReservationTime: INT_3, postIdleTimeout: NAT _ 10, -- in seconds (see ThPartyOpsImpl) nullKeyCorrectParity: BOOL _ TRUE, -- bad key indices won't kill Lark runLarkWatchDogTimer: BOOL _ TRUE, -- probe Larks at intervals larkWatchDogTimerInterval: INT _ 1 -- per-Lark Interval, in seconds. ]; pd: REF PD; <> ROPE: TYPE=Rope.ROPE; WPListing: TYPE = LoganBerry.Entry; -- a list of keys and values. WPState: TYPE = REF WPStateBody; -- a handle for the database. WPStateBody: TYPE = RECORD [ db: LoganBerry.OpenDB_RefID.nullID, dbName: ROPE, howToComplain: VoiceUtils.WhereToReport_NIL ]; <> <<>> <> <> <> WhitePagesLookup: PROC[ wpState: WPState, name: ROPE, feep: BOOL_FALSE ] RETURNS [ listing: WPListing ]; <> <> <<>> WhitePagesEntry: PROC[ wpState: WPState, name: ROPE_NIL, key: ATOM_$officeNumber, feep: BOOL_FALSE, listing: WPListing_NIL ] RETURNS [fullRName: ROPE, entry: ROPE, newListing: WPListing]; <> WhitePagesEnter: PROC[wpState: WPState, listing: WPListing]; <> WhitePagesPrint: PUBLIC SAFE PROC[wpState: WPState, listing: WPListing]; NewListing: PROC RETURNS [WPListing] = INLINE { RETURN[NIL]; }; <> List: PROC[listing: WPListing, key: ATOM, value: Rope.ROPE]; <> InitWhitePagesDatabase: PUBLIC SAFE PROC[ <> fileName: ROPE_NIL, howToComplain: VoiceUtils.WhereToReport_$System] RETURNS[wpState: WPState_NIL]; CloseWhitePagesDatabase: PUBLIC SAFE PROC[ wpState: WPState, howToComplain: VoiceUtils.WhereToReport_$System] RETURNS[ok: BOOL_TRUE]; <> PhoneMap: TYPE = LIST OF PhoneMapEntry; PhoneMapEntry: TYPE = RECORD [ pattern: ROPE, replacement: ROPE ]; HowToDial: PROC[phoneNumber: ROPE, ownExtension: ROPE_NIL] RETURNS [whatToDial: ROPE, isLocalExtension: BOOLEAN]; FeepName: PROC[rName: ROPE] RETURNS [feepName: ROPE]; }.