now the retriever function is the installable method of dep object.

This commit is contained in:
Norayr Chilingarian 2020-06-14 19:49:06 +04:00
parent e6823cb373
commit db0a32e674
4 changed files with 22 additions and 9 deletions

View file

@ -23,12 +23,16 @@ TYPE
Count* : LONGINT;
END;
retriever- = PROCEDURE (VAR d: Tdep): StringList.TStringList;
TdepDesc* = RECORD
prev-, next-: Tdep;
name- : pstring;
deps- : Tdeps;
Create* : PROCEDURE (VAR name: ARRAY OF CHAR): Tdep;
AssignDeps* : PROCEDURE (VAR d: Tdep; VAR deps: Tdeps);
RetrieveDeps* : retriever;
InstallRetriever*: PROCEDURE(VAR d: Tdep; r: retriever);
END;
PROCEDURE AssignDeps*(VAR d: Tdep; VAR deps: Tdeps);
@ -36,6 +40,11 @@ BEGIN
d.deps := deps
END AssignDeps;
PROCEDURE InstallRetriever*(VAR d: Tdep; r: retriever);
BEGIN
d.RetrieveDeps := r
END InstallRetriever;
PROCEDURE CreateDep*(VAR name: ARRAY OF CHAR): Tdep;
VAR
dep: Tdep;
@ -44,6 +53,8 @@ BEGIN
NEW(dep.name, Strings.Length(name) + 1);
COPY(name, dep.name^);
dep.AssignDeps := AssignDeps;
dep.InstallRetriever := InstallRetriever;
dep.RetrieveDeps := NIL;
RETURN dep
END CreateDep;