Heading:
Alpine access control notes, version 1
Page Numbers: Yes X: 527 Y: 10.5"
DRAFT - DRAFT - DRAFT - DRAFT
ToAlpine designersDateNovember 30, 1981
FromKaren KollingLocationPARC/CSL
SubjectAlpine access control notes, version 1 File [Indigo]<Alpine>Doc>AccessControlNotes1.bravo
XEROX
Attributes:informal, technical, Alpine, Filing, Access Control
Abstract:This memo contains some notes on the implementation of Alpine’s access control module.
Shortly I will materialize listings of the current AccessControl implementation in your mailboxes. (Disclaimer: only dibs and dabs of error handling and debug checks are in yet, and what is in is probably wrong). Herewith a picture:

AccessControl -- the interface for clients.
AccessControlPrivate -- a few internal things shared among various modules. Note that the compacted ("disk") file access lists are not defined here, but in AlpineInternal so they can be passed to FileProperties, etc.
AccessControlSharedOwner -- tiny interface, for the two modules immediately below to share a few routines. those two modules are the "high level" implementation modules; they know nothing about the physical structure of the owner file, internals of the volatile data structure, etc.
AccessControlOwnerAndAccessImpl -- 1 of the 2 "high level" modules. Implements the relatively simple, "frequent" operations, like AddOwner, ChangeSpaceForOwner, etc.
AccessControlVolGroupHeaviesImpl -- the other of the 2 "high level" modules. Implements the infrequent, non-trivial operations, like InitAndRegisterVolumeGroup, etc.
AccessControlCache -- manager of access cache.
AccessControlCacheImpl
AccessControlFile -- knows about the structure of the owner database files. Basically, if given an OwnerName, returns the record. Tells a few other things to its clients, mostly to aid in enumeration.
AccessControlFileImpl
AccessControlBuffer -- buffer manager. called by AccessControlFileImpl with the transKey, openFileID, and PageNumber, gives back a pointer to the appropriate valid buffer data area. does reads and writes.
AccessControlBufferImpl
AccessControlVolatile -- manager of the volatile data structure, which keeps track of openFileIDs, deferred deletes, pending volume registrations and unregistrations, etc.
AccessControlVolatileImpl
AccessControlUtility -- misc. utility stuff.
AccessControlUtilityImpl