Files
narya/lib/decoder.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

58 lines
1.5 KiB
Cheetah

//
// $Id: decoder.tmpl,v 1.2 2002/08/14 19:07:48 mdb Exp $
package [% package %];
[% FOREACH import = imports -%]
import [% import %];
[% END -%]
/**
* Dispatches calls to a {@link [% name %]Receiver} instance.
*/
public class [% name %]Decoder extends InvocationDecoder
{
/** The generated hash code used to identify this receiver class. */
public static final String RECEIVER_CODE = "[% receiver_code %]";
[% FOREACH method = methods -%]
/** The method id used to dispatch {@link [% name %]Receiver#[% method.mname %]}
* notifications. */
public static final int [% method.mcode %] = [% method.mcodeval %];
[% END -%]
/**
* Creates a decoder that may be registered to dispatch invocation
* service notifications to the specified receiver.
*/
public [% name %]Decoder ([% name %]Receiver receiver)
{
this.receiver = receiver;
}
// documentation inherited
public String getReceiverCode ()
{
return RECEIVER_CODE;
}
// documentation inherited
public void dispatchNotification (int methodId, Object[] args)
{
switch (methodId) {
[% FOREACH method = methods -%]
case [% method.mcode %]:
(([% name %]Receiver)receiver).[% method.mname %](
[% method.unwrapped_args %]
);
return;
[% END -%]
default:
super.dispatchNotification(methodId, args);
}
}
// Generated on [% genstamp %].
}