This interface is passed to a netlet by the node on initialisation. It is used by the netlet to communicate with the node.
public interface INode extends IFacetCollection { /** Request that the client netlet be terminated. */ public void requestTermination(); /** Ask the node to make a service connection. The node will instantiate a * service netlet. That netlet could be a proxy to the actual service. * @param warrant The warrant that is used to bind to the service. * @param consumer The consumer side of service. I.e. a service connection * from the actual netlet making the request. * @return The server side of the service. */ public IService bindService(Warrant warrant, IService consumer) throws ServiceBindException; /** Create a service proxy, i.e. something with the same semantics * as a service connection but without binding a warrant. This * proxy can be freely passed to other netlets. Any facets passed * through the proxy will be dependent on the proxy, and will be * shutdown along with this proxy. The proxy may have its own * thread pool. * @param impl Something implementing the proxy * @param facet The name of the interface that the proxy represents. * The proxy object can then be cast into this. * @return An interface to manage the service proxy, from which the * proxied service itself can be obtained. */ public IProxy createServiceProxy(IRemote impl, String facet); /** Tell the node how many concurrent threads it can start on the netlet's * behalf. For example, if we set the concurrency to 10 then the netlet * will only be able to accept 10 service requests, or 9 service requests * and 1 notification of termination. This does not affect how many * service requests the netlet can initiate. But if the netlet makes an * asynchronous call to a facet and the concurrency threshold is too low * then it may never receive the response. Since incoming calls are * otherwise out of the netlet's control, this method allows this resource * (threads) to have an upper limit. * * @param threads Maximum number of threads the node can start for the * netlet. Setting this to zero or less is silly, since it prevents * the netlet from responding to any incoming request, including a * notification of termination. * * @param thread_reuse Can this netlet reuse threads? If a netlet invokes * outwards synchronously then a causal incoming call was called * synchronously then the original thread can be reused. Default is * <tt>false</tt> (no thread reuse). */ public void setConcurrency(int threads, boolean thread_reuse); }
Nik Silver 2002-03-09