diff options
Diffstat (limited to 'daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java')
-rw-r--r-- | daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java b/daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java index d2cfb21..5741e58 100644 --- a/daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java +++ b/daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java @@ -15,15 +15,21 @@ public class RequestParser /** * Our very own gson instance (for serializing replies) */ - private static final Gson sendGson = new Gson(); + private final Gson sendGson = new Gson(); + + private final Taskmanager taskManager; + + public RequestParser( Taskmanager tm ) + { + this.taskManager = tm; + } /** * Handle the given unparsed request. * - * @param source source of the request, where the reply will be send to (if any) * @param payload Packet data received from network, already converted to a string */ - public static byte[] handle( String payload ) + public byte[] handle( String payload ) { String[] parts = payload.split( " *, *", 3 ); // Message format is "<message id>, <command>, <command payload/argument>" @@ -34,21 +40,21 @@ public class RequestParser // Look at parts[1], if it's "status" it's a request for the task // with the ID given in parts[2] if ( parts[1].equals( "status" ) ) { - TaskStatus status = Taskmanager.getTaskStatus( parts[2] ); + TaskStatus status = taskManager.getTaskStatus( parts[2] ); return serialize( parts[0], status ); } // Now check if parts[1] is "release" if ( parts[1].equals( "release" ) ) { - Taskmanager.releaseTask( parts[2] ); + taskManager.releaseTask( parts[2] ); return null; } // Anything else in parts[0] will be treated as a fresh task invocation, so let's // pass it on to the task manager. - TaskStatus status = Taskmanager.submitTask( parts[1], parts[2] ); + TaskStatus status = taskManager.submitTask( parts[1], parts[2] ); return serialize( parts[0], status ); } - private static byte[] serialize( String messageId, TaskStatus status ) + private byte[] serialize( String messageId, TaskStatus status ) { String data; try { |