RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.experiments.scheduling.internal.messages; 00002 00003 import java.io.EOFException; 00004 import java.io.IOException; 00005 import java.net.SocketException; 00006 00007 00008 public class Messages { 00009 static private boolean verbose = true; 00010 static private boolean debug = false; 00011 static byte[] Header = new byte[] { 'D', 'o', 'c' }; 00012 static int HeaderSize = Header.length + Integer.SIZE / Byte.SIZE + Integer.SIZE / Byte.SIZE; 00013 00014 public enum MessageType { 00015 Error, RequestJob, Job, RequestClass, ClassData, SendClientName 00016 } 00017 00018 public static Message cast(MessageBinary message, ClassLoader classLoader) { 00019 if (message == null) 00020 return null; 00021 try { 00022 switch (message.type()) { 00023 case Error: 00024 return null; 00025 case RequestJob: 00026 return new MessageRequestJob(message); 00027 case Job: 00028 return new MessageJob(message, classLoader); 00029 case RequestClass: 00030 return new MessageRequestClass(message); 00031 case ClassData: 00032 return new MessageClassData(message); 00033 case SendClientName: 00034 return new MessageSendClientInfo(message); 00035 } 00036 } catch (IOException e) { 00037 displayError(e); 00038 return null; 00039 } 00040 return message; 00041 } 00042 00043 static public void disableVerbose() { 00044 verbose = false; 00045 } 00046 00047 static public void enableDebug() { 00048 debug = true; 00049 } 00050 00051 static public void displayError(Throwable throwable) { 00052 Class<?>[] classIgnored = new Class<?>[] { EOFException.class, SocketException.class }; 00053 boolean ignored = false; 00054 for (Class<?> classType : classIgnored) 00055 if (classType.isInstance(throwable)) { 00056 ignored = true; 00057 break; 00058 } 00059 if (debug || !ignored) 00060 throwable.printStackTrace(); 00061 } 00062 00063 public static void println(String message) { 00064 if (verbose) 00065 System.out.println(message); 00066 } 00067 00068 public static void debug(String message) { 00069 if (debug) 00070 System.out.println(message); 00071 } 00072 }