Le 28 mai 06 à 03:27, Hubert Chan a écrit :

Sorry for the late reply. I'm just starting to get back into GNUstep stuff...

On 2006-05-06 09:30:54 -0400 Quentin Mathé <[EMAIL PROTECTED] internet.fr> wrote:

- FileManager == GWorkspace? or it's going to be rewritten from scratch?

Rewritten from scratch for two reasons :
- it doesn't match Étoilé ideas
- its design and code are overly complicated and not always clear (broken
MVC, high coupling between classes) imho

There is an experimental Workspace in /Services/Private/ Workspace, but it's based on a port of Filie which was really well written. The last time I worked a bit on it in Spring 2005, my integration was still very buggy, I stopped working on it because I thought ExtendedWorkspaceKit design was
wrong.

Just wondering how you think ExtendedWorkspaceKit design is wrong, and how you think it should be designed. I started writing my own file manager a while ago, before I came across Etoile, and I thought it would be better to help out the Etoile file manager if I could.

Well, I think now ExtendedWorkspaceKit shouldn't try to reimplement a Unix-like VFS with objects granularity, but rather be based on CoreObject one providing simple interactions :
- move
- copy
-  link
- store (save)
- restore (load)
- do (for forwarding/sending a message)
That means to remove EXVFS.h, EXVFSHandle.h, EXFileManager.h (since file manager API is going to be bridged directly at CoreObject level) and EXWorkspace. EXContext should also be simplified to be just a subclass of CoreObject COCoreObject and it could be better to rename it EXCoreObject (or EXPersistentObject) I think… this terminology "context", "entity context" should be probably replaced by a simpler one; "entity" was used to mean either "folder", "virtual folder" or "search results" notions . "node" or "group" are surely more accurate terms than "entity".

We have to remove also the VFS splitted class cluster :
- EXVFS.h front
- EXVFSBack.h backend and its current subclasse EXGNUstepVFS.h
The point of this front/backend model was to allow several backends to be used at the same time (like host FS, FTP etc.). The front part was created to handle virtual objects and make the class cluster invisible.
I precisely don't like now this whole VFS stuff in the framework.

In CoreObject, I'm working on using a single class COObjectServer which implements a VFS-like protocol (COTranslator)… When an operation is requested on this object server, it checks whether it needs to delegate it to another object server by checking a translator table (mapping namespaces to object server classes). This is a lot simpler and more flexible (specially when you consider the fact, object servers can be either proxies or local instances).

Finally I think the indexing/searching part of ExtendedWorkspaceKit is fine, it's just need to be bridged with LuceneKit (may involve some minor LuceneKit API tweaks, but it should be fine since we already discussed it with Yen-Ju). Herea are the two LuceneKit classes : - <http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/ LuceneKit/Headers/LCIndexManager.h> - <http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/ LuceneKit/Headers/LCIndexManager.h>

The remaning parts to add are :
- project/user sessions related facilities
- system interaction support (log in, log out, hardware notifications for stuff like power, medias, FS)
- IconKit integration
- document support (by extending NSDocument)

Then later would be nice to have :
- versioning (not sure that should be handled at CoreObject level)
- CoreData integration (in a bundle), interesting to automatically handle persistent objects indexing or versioning

Cheers,
Quentin.

--
Quentin Mathé
[EMAIL PROTECTED]


_______________________________________________
Etoile-dev mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-dev

Reply via email to