pkgobj/src/Common/PackageLib.i3


Copyright (C) 1994, Digital Equipment Corp.
PackageLib.def

INTERFACE PackageLib;

IMPORT FileSys, OSError, PackageObj, Thread;

EXCEPTION Stop;

TYPE
  FN = FileSys.FN;

  DiffType = {
    Same, NoSrc, NoDest, SrcNewer, SrcOlder,
    LinksDiffer, LengthsDiffer, TypesDiffer, ModesDiffer};

  DiffClosure = OBJECT METHODS
    report(dir: FN; diff: DiffType; elem: PackageObj.DirElem)
      RAISES {Stop, Thread.Alerted};
  END;

  EnumClosure = OBJECT METHODS
    acquire() : (*dir*) FileSys.FN;
    release();
  END;

CONST
  VersionFile = ".version";
  ExportLinkFile = ".exportLinks";

PROCEDURE Enumerate (e: EnumClosure): PackageObj.DirEnum
    RAISES {OSError.E};

PROCEDURE Compare(src, dest: PackageObj.DirEnum; cl: DiffClosure)
    RAISES {Thread.Alerted};

PROCEDURE SetDirDates(dir: FN; enum: PackageObj.DirEnum)
    RAISES {OSError.E};

PROCEDURE EmptySource() : PackageObj.Source;

END PackageLib.