Re: where to put tar storage object...



> The http storage driver is in the gtkhtml module, as that's where Miguel
> and I thought it would be best without having to add a libghttp dependency
> on bonobo.

Mhm.  I thought that this would be a component provider, and not a
storage.  If it is a storage, then we need to revisit this.

See, here is the problem: Vlad started looking at your code, and it
seems like there is a conceptual mistake with the code, let me try to
explain (we went trough this with Vlad recently).

	1. A moniker handler should just do two things: parse the
           display name and resolve the moniker.

	2. During resolution time, the moniker ::resolve() method
           should take any necessary steps to satisfy the resolution,
           but it should not activate any components to run in the
           address space and return objects to components in its
           address space.

	   Note: in some cases it might be desirable;  In some cases
	   if you know precisely what you are doing, it might be
	   reasonable;  In some cases it is ok to do so.

	   But doing so is typically a conscious decision, and not a
	   side effect of using one of the stock bonobo components in
	   the moniker handler.

So, if the http moniker is using bonobo_storage_new ("http") we are
most likely in trouble.   We should have an `http'  handler, just like
we have a tar handler, which is fully independent of the moniker.

For instance, we might want to combine the most used moniker handlers
into a single package.  This package might be just a shared library
for efficiency reasons, and might just get disposed when the main
process gets dispossed.

So, my suggestion is to do the same split that Vlad did, which is the
moniker handler should just do parsing and resolution, while the
actual work is done somewhere else.

Miguel.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]