<> <> <> DIRECTORY BTree, BTreeVM, FS, Log USING [ WhereToReport ], Rope USING [ ROPE ], RefTab USING [ Ref ] ; 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. <> ]; pd: REF PD; <> WPState: TYPE = REF WPStateRecord; WPStateRecord: TYPE = RECORD [ wpTree: BTree.Tree, wpVM: BTreeVM.Handle, keyRecord: REF, wpFeepTree: BTree.Tree, wpFeepVM: BTreeVM.Handle, feepKeyRecord: REF, wpDataVMFile: FS.OpenFile, wpDataVM: BTreeVM.Handle, wpDataVMLen: INT_0, wpDataVMValid: BOOL_TRUE, wpOpen: BOOL_FALSE ]; ROPE: TYPE=Rope.ROPE; WPListing: TYPE = RefTab.Ref; -- a table of keys and values. Attrs: TYPE = MACHINE DEPENDENT { name(1), rName(2), officeNumber(3), officeDDDNumber(4), outsideNumber(5), officeAddress(6), officeLocation(7), organization(8), homeAddress(9), frequency(10), mailSystem(11), primaryKey(12), (15) }; <> <<>> <> <> <> 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]; <> InitWhitePagesDatabase: PUBLIC SAFE PROC[ fileName: ROPE, accessOptions: FS.AccessOptions _ $read, howToComplain: Log.WhereToReport_$System] RETURNS[wpState: WPState_NIL]; <> HowToDial: PROC[phoneNumber: ROPE, ownExtension: ROPE_NIL] RETURNS [whatToDial: ROPE, isLocalExtension: BOOLEAN]; FeepName: PROC[rName: ROPE] RETURNS [feepName: ROPE]; }.