MinneStore Database -- Copyright(c) 1997, 1998 by Jonathan Carlson See the license file in the Doc directory. Squeak port by Stephen Pope -- stp@create.ucsb.edu -- 2000.06.23 Read all the README pages at www.objectcomposition.com and in the doc subdirectory. Port Notes MinneStore is written to be portable among Smalltalk dialects. The classes in the category OODB-Support facilitate this; specifically FlavorCompatibility has class methods to mask all the expected differences between dialects. Unfortunately, the current code had many more problems in the area of platform portability, there were DOS-specific file names (C:\Test\) and directory separators ($\) littered throughout the code and test cases. I've tried to fix this and to use FlavorCompatibility methods. I work on a Mac, and have not tested this extensively on any other platforms, however. This port uses Squeak ReferenceStreams for object storage. If you want to customize the storage format for a give class, you need to implement storaDataOn: aDataStream and readDataFrom: aDataStream size: anInteger. Read the documentation in DataStream and ReferenceStream. The current system is relatively fast and simple; remember: fast, compact, or simple -- pick any two. For the Siren music cclasses, I have added a number of specialized storage formats, and it makes a huge difference for things you'll be storing in huge quantities. Known bugs There's a crude kludj in FlavorCompatibility clone: in fact, I don't clone at all, but simply return the object passed into the method. If applications require added safety, you can try using shallow or deep copies, or going all the way (as in the code commented out in the method) and storing the given object to a reference stream and reading it back.