return new ConnectActionServerString(s, key) {
@Override
public void action() throws Exception {
+ long id = getNextId();
for (String data = rec(); data != null; data = rec()) {
String rep = null;
try {
- rep = onRequest(this, data);
+ rep = onRequest(this, data, id);
if (isClosing()) {
return;
}
if (rep == null) {
rep = "";
}
-
send(rep);
}
+
+ onRequestDone(id, getBytesReceived(), getBytesSent());
}
@Override
* the client action
* @param data
* the data sent by the client
+ * @param id
+ * an ID to identify this request (will also be re-used for
+ * {@link ServerObject#onRequestDone(long, long, long)}.
*
* @return the answer to return to the client
*
* in case of an exception, the error will only be logged
*/
abstract protected String onRequest(ConnectActionServerString action,
- String data) throws Exception;
+ String data, long id) throws Exception;
}