From: TNHarris <tel...@fa...> - 2006-10-31 01:34:56
|
On Mon, 23 Oct 2006 23:04:52 +0200, "Filip Volejnik" <f.v...@ce...> said: > I spent some small time thinking about the Database service > organization, and I drew a picture of the resulting thought. This is > only a quick mind map of the expected structure. Please post comments, > any. > Oh, great.. Now you're wasting time drawing silly diagrams. I thought that was my job? What are you trying to make me actually write some code or something? > The file handling classes are ment to be mainly a unifying classes for > Ogre's / std access, but there is a MemoryFile for chunk load/save > capabilities. That one will be inherited to provide chunk header access, > and the DarkDB file handling class will supply a set of these > (+iterator) for the services wishing to write/read data. > Why the need for both Ogre and std streams? Isn't Ogre alone enough for any file access? And I'd think that, for the benefit of the resource manager, we'd want to discourage bypassing it. In the databse class you've got a box labelled "Storage" for interfacing with the Data manager. A useful interface for this purpose would be something like: class StructData: This class binds a StructInfo descriptor to the data that it describes. Class is initialized with a StructInfo and some sort of reader/writer class for accessing the data. method getName: Name of this structure. method getFieldNames: Returns iterator. method describeField(name): Returns the type information of a field. method getField(name): Returns the data in a field as a DVariant. method setField(name,value): Stores data in the field. You pass this to the database and it will be able to quickly stream data from arbitrary sources without regard for the underlying format. (Implementation left as an excersize for the reader.) -- tom tel...@fa... -- http://www.fastmail.fm - The way an email service should be |