Files
narya/lib/dispatcher.tmpl
T
Michael Bayne e54a4d41f4 The great invocation services rethink of 2002! Rearchitected the remote
method invocation services and converted everything to the new style.
Could this be my biggest checkin ever?


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1642 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-08-14 19:08:01 +00:00

50 lines
1.2 KiB
Cheetah

//
// $Id: dispatcher.tmpl,v 1.2 2002/08/14 19:07:48 mdb Exp $
package [% package %];
[% FOREACH import = imports -%]
import [% import %];
[% END -%]
/**
* Dispatches requests to the {@link [% name %]Provider}.
*/
public class [% name %]Dispatcher extends InvocationDispatcher
{
/**
* Creates a dispatcher that may be registered to dispatch invocation
* service requests for the specified provider.
*/
public [% name %]Dispatcher ([% name %]Provider provider)
{
this.provider = provider;
}
// documentation inherited
public InvocationMarshaller createMarshaller ()
{
return new [% name %]Marshaller();
}
// documentation inherited
public void dispatchRequest (
ClientObject source, int methodId, Object[] args)
throws InvocationException
{
switch (methodId) {
[% FOREACH method = methods -%]
case [% name %]Marshaller.[% method.mcode %]:
(([% name %]Provider)provider).[% method.mname %](
source[% IF method.unwrapped_args %],[% END %]
[% method.unwrapped_args %]
);
return;
[% END -%]
default:
super.dispatchRequest(source, methodId, args);
}
}
}