|
From: Federico A. L. <fl...@ma...> - 2003-07-01 14:22:09
|
Hi Exio, what I promise is debt. I took a hard look on your design, it has improved a lot. However we rewrote the whole stuff based on your initial design. It was a 4 hours design effort and we think it is a good start, the idea was define the Services that the objects whould give you, however everybody make mistakes so if you find anything when implementing let me know. Your design had some quirks, like for example you cannot handle multiple open files without having one file handler for each file (you you still do the fopen for each file, so we dont win anything from the PAQ File), we had added a proxy object called PAQFileSolidManipulator that would encapsulate that very same file handler. Another thing was some class names, it was pretty difficult to understand because name overloading for example PAQFile (what it is? A .PAQ File or a File inside the PAQ), seeing that we added the notion of a SolidFile (that is the .PAQ File). We went further on the Files, we added an Interface IIAbstractFile, but it wont be included in the PAQ File, it will be included in another package. The idea is in some time (when we need them) implement memory mapped files and other derived classes from it. Another important thing was that we do not permit access to the user for the things that only the PAQ Manager have access to. In fact the user (developer) only have a View, it wont have the complete command set available to be used. We used a friend class for that, if you know of a better way to improve that, let me know cause it is pretty useful (if only C++ had Selective Export like Eiffel). One far less important issue was misplaced use of the virtual keywork on some methods, but nothing to worry about YET. The headers we are sending are not complete in implementation details, we though that you could handle that better so we add as less as we could (for example we didnt define the class PAQFileDescriptor and left deliveratly incomplete the IIAbstractFile and PAQFile classes). The same for attributes inside the classes. We tried to document everything so you wouldnt have a hard time reading it. Dont worry mamutas the docs from the Network Lib are on the way :D ... Nice work overall, you will learn our style and write the things right from the start that just only requires practice. Now that you are going to start to implement it, try to give as much feedback as you can about your progress. The same if you find problems in the definition of some services, in short just drop an email and we will try to resolve the issue. Greetings Red Knight |