4.2 Unixdirectory Interface

ORIGIN '~beta/basiclib/directory';
LIB_DEF 'unixdirectory' '../lib';
BODY 'private/unixdirectory_body';

INCLUDE 'unixfile';
---- LIB: attributes ----

unixdirectory: directory
  (* BETA interface to disk files in UNIX *)
  (#
     <<SLOT UnixDirectoryLib: attributes>>;
     
     EntryDesc::< UnixEntry;
     
     findEntry: dirFindEntry
       (#
          foundDesc::< UnixEntry;
          foundFile::< UnixFile;
          foundDir::< UnixDirectory;
          select: dirselect
            (# whenSocket:<       (# do INNER #);
               whenSymboliclink:< (# do INNER #);
               whenCharSpecial:<  (# do INNER #);
               whenBlockSpecial:< (# do INNER #);
       
               selectImpl::< (* private *)
                 (# ... #)
            #);
          do INNER
       #);
     scanEntries: dirScanEntries
       (#
          foundDesc::< UnixEntry;
          foundFile::< UnixFile;
          foundDir::< UnixDirectory;
          select: dirselect
            (# whenSocket:<       (# do INNER #);
               whenSymboliclink:< (# do INNER #);
               whenCharSpecial:<  (# do INNER #);
               whenBlockSpecial:< (# do INNER #);
          
               selectImpl::< (* private *)
                 (# ... #)
            #);
       do INNER
       #);
     (* idx- *) (* idx- *)   
  #)


(* Instead of scanEntries and findEntry being virtual (i.e. virtual
 * prefixes):
 *)
---- DirectoryLib: attributes ----
dirFindEntry: findEntry(# do INNER #);
dirScanEntries: scanEntries(# do INNER #);

---- DirFindLib: attributes ----
dirSelect: select(##);

---- DirScanLib: attributes ----
dirSelect: select(##)


4.2 Unixdirectory Interface
© 1990-2004 Mjølner Informatics
[Modified: Wednesday August 26th 1998 at 12:27]