X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fserial%2Fserver%2FServerObject.java;h=f79776696cdc2e6c5fae13e6ed0f733c814268c2;hb=ae0ca537218b08a53929a5f2545269fc99e2b0b1;hp=0315f90c47f74b19d557e6a029e065da89dd1911;hpb=c1e7c70dbaaaf8efb5d977ed0e5b1128827355ed;p=fanfix.git diff --git a/src/be/nikiroo/utils/serial/server/ServerObject.java b/src/be/nikiroo/utils/serial/server/ServerObject.java index 0315f90..f797766 100644 --- a/src/be/nikiroo/utils/serial/server/ServerObject.java +++ b/src/be/nikiroo/utils/serial/server/ServerObject.java @@ -67,11 +67,12 @@ abstract public class ServerObject extends Server { return new ConnectActionServerObject(s, key) { @Override public void action() throws Exception { + long id = getNextId(); try { for (Object data = rec(); true; data = rec()) { Object rep = null; try { - rep = onRequest(this, data); + rep = onRequest(this, data, id); if (isClosing()) { return; } @@ -83,6 +84,7 @@ abstract public class ServerObject extends Server { } } catch (NullPointerException e) { // Client has no data any more, we quit + onRequestDone(id, getBytesReceived(), getBytesSent()); } } @@ -102,6 +104,9 @@ abstract public class ServerObject extends Server { * the client action * @param data * the data sent by the client (which can be NULL) + * @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 (which can be NULL) * @@ -109,5 +114,5 @@ abstract public class ServerObject extends Server { * in case of an exception, the error will only be logged */ abstract protected Object onRequest(ConnectActionServerObject action, - Object data) throws Exception; + Object data, long id) throws Exception; }