[ANN] Directory 1.0 released

Zuurbier, E. - AMSXE Erik.Zuurbier@klm.nl
Mon, 29 Nov 1999 17:02:13 +0100


Martin,

Ik heb even snel door de source-code gebladerd. Het ziet er mooi uit.
Binnenkort ga ik het proberen. Ik heb al een programma klaarliggen waarin ik
het nodig heb. Over de platform-afhankelijkheid:

Het Directory-module is zelf platform-onafhankelijk. Maar het is pas echt
mooi als ook programma's die het Directory-module gebruiken, per definitie
platform-onafhankelijk zijn. En dat is niet zo. Immers, een applicatie die
het record-veld winLastAccessTime gebruikt, kan dus niet op de mac draaien.

Ik zie een aantal verschillende mogelijkheden:
1)	Zet de platform-afhankelijke zaken in afzonderlijke modules per
platform. Dan heb je in totaal bijvoorbeeld de modules Directory,
DirectoryMac, DirectoryWin en DirectoryUNIX. Wil je dan als systeembeheerder
controleren of een applicatie volledig platform-onafhankelijk is? Controleer
dan alleen de import-statements, of verplaats/rename tijdelijk de
platform-afhankelijke modules en link opnieuw.
2)	Ondersteun simpelweg geen platform-afhankelijke zaken. Dus
winLastAccessTime? Het is leuk dat Windows dat heeft, maar kennelijk hebben
de fabrikanten van concurrerende platforms geen reden gezien om dit in te
bouwen, dus is het niet echt nodig.
3)	Gooi alle platform-afhankelijke velden samen met de
platform-onafhankelijke zaken in EEN GROOT file-info-record. Dat heeft dan
dus de velden: fileName, fileSize, lastModified, isDirectory, isReadOnly,
unixModeBitsField, unixOwnerUserId, unixOwnerGroupId, unixLastAccessTime,
winCreationTime, winLastAccessTime, winDOSName, winIsHidden,
winIsArchiveFile, winIsSystemFile, macCreationTime, macBackupTime,
macIsHidden, macFDFlags, macFurtherInfo. Gooi daar de verdubbelingen uit
(dus winCreationTime en macCreationTime worden samen creationTime, etc.) en
zorg dat op de mac het veld unixModeBitsField de waarde undef krijgt, of een
default-waarde die geen kwaad kan.

Geen van allen is ideaal, maar Peter Achten is ook heel ver gekomen bij het
verenigen van alle platforms. Een nadeel van de huidige opzet is nog dat bij
het toevoegen van een volgend platform (Sun of zo) kan blijken dat Sun
bijvoorbeeld lastModified niet ondersteunt. Dan ben je gedwongen om dat veld
over te hevelen van platform-onafhankelijk naar platform-afhankelijk, met
alle gevolgen voor bestaande applicaties van dien. Niet leuk. Of stel (iets
waarschijnlijker) dat de volgende versie van UNIX de creation time van een
file gaat bijhouden. Dan zal er grote druk op je worden uitgeoefend om
winCreationTime,  macCreationTime en unixCreationTime samen te vervangen
door creationTime, en te verhuizen naar de platform-onafhankelijke zaken.
Weer met de vervelende gevolgen voor bestaande applicaties van dien. De
derde genoemde mogelijkheid voorkomt deze vervelende dingen.

Ik hoop dat je hier iets aan hebt.

Groeten,

Erik Zuurbier, KLM,
co-mail: SPL/XJ-831
phone: +31 20 649 6255
email: erik.zuurbier@klm.nl <mailto:erik.zuurbier@klm.nl> 


		-----Original Message-----
		From:	Martin Wierich [mailto:martinw@cs.kun.nl]
		Sent:	woensdag 17 november 1999 17:48
		To:	clean-list@cs.kun.nl
		Subject:	[ANN] Directory 1.0 released

		A new Clean library to access and manipulate folders is
released for
		Windows, Unix and MacOS (PPC). It can be downloaded from

		   http://www.cs.kun.nl/~clean/

		cheers
		  Martin Wierich