-- File: NameServerDefs.Mesa, Last Edit: HGM March 12, 1981 10:55 PM DIRECTORY InlineDefs USING [BcplLongNumber], Window USING [Handle], File USING [Capability], StatsDefs USING [StatCounterIndex], BufferDefs USING [OisBuffer, PupBuffer], PupTypes USING [PupType, PupAddress], Socket USING [ChannelHandle], MiscServerDefs USING [ lockDirRequest, lockDirReply, unlockDirRequest, unlockDirReply, nameStatsRequest, nameStatsReply, whoAmI]; NameServerDefs: DEFINITIONS = BEGIN PupBuffer: TYPE = BufferDefs.PupBuffer; PupAddress: TYPE = PupTypes.PupAddress; PupDirServerOn: PROCEDURE; PupDirServerOff: PROCEDURE; PupDirServer: PROCEDURE [PupBuffer]; PupNameServerOn: PROCEDURE; PupNameServerOff: PROCEDURE; PupNameServer: PROCEDURE [PupBuffer]; OISCPNameServer: PROCEDURE [Socket.ChannelHandle, BufferDefs.OisBuffer]; StartProbingForDirectory: PROCEDURE; GetDirectoryVersion: PROCEDURE RETURNS [CARDINAL]; -- 0 if none/unknown EnumerateCache: PROCEDURE [PROCEDURE [CacheEntry]]; GetCacheLocation: PROCEDURE RETURNS [POINTER TO CacheEntry]; UpdatePicture: PROCEDURE; lockDirRequest: PupTypes.PupType = MiscServerDefs.lockDirRequest; lockDirReply: PupTypes.PupType = MiscServerDefs.lockDirReply; unlockDirRequest: PupTypes.PupType = MiscServerDefs.unlockDirRequest; unlockDirReply: PupTypes.PupType = MiscServerDefs.unlockDirReply; nameStatsRequest: PupTypes.PupType = MiscServerDefs.nameStatsRequest; nameStatsReply: PupTypes.PupType = MiscServerDefs.nameStatsReply; whoAmI: PupTypes.PupType = MiscServerDefs.whoAmI; CacheEntry: TYPE = POINTER TO CacheEntryObject; CacheEntryObject: TYPE = RECORD [ next: CacheEntry, size: CARDINAL, count: LONG CARDINAL, sequence: CARDINAL, names: DESCRIPTOR FOR ARRAY OF STRING, addrs: DESCRIPTOR FOR ARRAY OF PupAddress]; -- Statistics statName, statAddress, statWhoAmI, statXlation, statConst, statBusy: StatsDefs.StatCounterIndex; statSend, statVers: StatsDefs.StatCounterIndex; statHits, statMisses, statNone, statFile: StatsDefs.StatCounterIndex; statMsScanningFile: StatsDefs.StatCounterIndex; NameStatsEntry: TYPE = RECORD [ version: WORD, nameRequests: InlineDefs.BcplLongNumber, directoriesSend: InlineDefs.BcplLongNumber, cacheHits: InlineDefs.BcplLongNumber, cacheMisses: InlineDefs.BcplLongNumber]; nameVersion: WORD = 1; SetCacheSize: PROCEDURE [CARDINAL]; BumpCacheSize: PROCEDURE [INTEGER]; -- internal things -- PupDirServer to PupNetDirFile and PupNetDirCache ResetDirectoryFile: PROCEDURE RETURNS [version: CARDINAL]; CheckDirectoryFile: PROCEDURE [File.Capability] RETURNS [ok: BOOLEAN]; OpenDirectoryFile: PROCEDURE; CloseDirectoryFile: PROCEDURE; FlushWholeCache: PROCEDURE; GetDirectoryFile: PROCEDURE RETURNS [File.Capability]; -- PupNameServer to PupNetDirCache SearchCacheForName: PROCEDURE [STRING] RETURNS [CacheEntry]; SearchCacheForAddress: PROCEDURE [PupAddress] RETURNS [CacheEntry]; ForceNameIntoCache: PROCEDURE [STRING] RETURNS [CacheEntry]; ForceAddressIntoCache: PROCEDURE [PupAddress] RETURNS [CacheEntry]; -- PupNetDirCache to PupNetDirFile SearchNetDirForName: PROCEDURE [STRING, CacheEntry] RETURNS [BOOLEAN]; SearchNetDirForAddress: PROCEDURE [PupAddress, CacheEntry] RETURNS [BOOLEAN]; msg: Window.Handle; busy, nameRunning, dirRunning, probing, sending: BOOLEAN; END.