DEFINITION MODULE CookieJar; (* c-> M2 -> ST 12/90, ST 1/91 *) (******************************************************************************) (* This MODULE is Public Domain. Copy me like a beast! *) (* Christian Ledermann *) (* W”lfelkofen 2 *) (* 84166 Adlkofen *) (******************************************************************************) (* *) (* Started: 20.12.92 03:54:30 *) (* Version: 20.12.89 03:244:12:54 *) (* *) (******************************************************************************) (* *) (* Diese Software ist ohne jede Garantie. Ich verspreche *) (* keinerlei Wartung und bernehme keine Verantwortung fr Sch„den die *) (* durch die Benutzung dieses Programmes entstehen. *) (* Jegliche Ersatzansprche lehne ich ab. *) (* *) (******************************************************************************) FROM SYSTEM IMPORT ADDRESS; TYPE Cookie = RECORD CookieId : ARRAY [0..3] OF CHAR; CookieValue : LONGCARD; END(*RECORD*); PROCEDURE CreateCookie(VAR cookie:Cookie; id : ARRAY OF CHAR; value: LONGCARD ); (* Initialisiert in der Variablen cookie einen Cookie; als weitere Parameter werden die Id des Coockies sowie dessen Wert bergeben *) PROCEDURE NewCookie(VAR Entry:Cookie):BOOLEAN; (* Tr„gt einen Neuen Cookie in den Jar ein. Achtung ! Der Fall eines bereits vollen Jars wird hier nicht abgefangen. Es muss dann entsprechend Speicher ALLOCATEed und der ganze Jar umkopiert werden *) PROCEDURE GetCookie(VAR cookie:Cookie):BOOLEAN; (* fragt den Wert eines Cookies ab. Als Parameter wird dabei die ID des zu suchenden Cookies bergeben. die Routine liefert FALSE wenn der Cookie nicht gefunden wurde; wenn er gefunden wurde wird TRUE zurckgegeben und der Wert des Cookies in cookie.CookieValue eingetragen *) PROCEDURE CookieSize():LONGCARD; (* liefert die Gr”sse des installierten Jars, d.h. die Anzahl der maximal m”glichen Eintr„ge *) PROCEDURE RemoveCookie(VAR id : ARRAY OF CHAR); (* entfernt den mit id bezeichneten Cookie aus dem CookieJar*) PROCEDURE MoveCookieJar(Destination : ADDRESS; size :LONGCARD); (* verschiebt Kompletten CookieJar an eine neue Speicherstelle. Als Parameter werden die neue ADDRESSe des Jars sowie seine Gr”sse d.h. die Anzahl der in ihn hineinpassenden Cookies bergeben *) PROCEDURE PrintCookieJar; (* gibt den Inhalt des Cookie Jars mit WriteString, und WriteLongCard aus *) (* Zum Arbeiten kann dieser Teil auskommentiert werden falls man im eigenen Programm InOut , LongInOut nicht braucht *) END CookieJar.