Indirection Objects

Robert Wittams robert.wittams@ic.ac.uk
Sat, 08 Jul 2000 22:38:40 +0100


I haven't read much about indirection objects on the eros site.
Hope I haven't missed anything ;-)

Let me draw some ascii art to show  
what I think of as an indirection object:

Normal:

--------       ----------
|client|-----> | server |
--------       ----------

With indirection:

--------     ----------     ----------
|client|---> |indirect| --> | server |
--------     ----------     ----------

So the indirection object just passes on whatever requests
the client makes to the server, and passes back the servers response.
(Or does the server resume directly to the client? ) 
It does nothing else. 
It only exists so that it can later be destroyed when the 
clients access to the server needs to be revoked. 

Other, more complex adaptors can be made. But I believe 
that this kind will be extremely common. 

Now, looking at this, in each key invocation there are
these switches:

client->kernel->indirect->kernel->server

and the other way. 

Now this seems a prime candidate for kernel acceleration. 
I do not know if it should be a different primary object or
just a node. But I think this will be used a lot, and this 
would get alleviate one of the main annoyances ( seemingly) of
capabilities - easy and quick revocation.

Sorry if this already happens ;-)

Rob