RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.experiments.scheduling.internal.messages; 00002 00003 import java.io.BufferedOutputStream; 00004 import java.io.ByteArrayOutputStream; 00005 import java.io.DataOutputStream; 00006 import java.io.IOException; 00007 import java.io.OutputStream; 00008 00009 import rlpark.plugin.rltoys.experiments.scheduling.internal.messages.Messages.MessageType; 00010 00011 public class Message { 00012 protected MessageType type = MessageType.Error; 00013 00014 protected Message(MessageType type) { 00015 this.type = type; 00016 } 00017 00018 protected Message(Message message) { 00019 this.type = message.type(); 00020 } 00021 00022 public void write(OutputStream outputStream) throws IOException { 00023 ByteArrayOutputStream contentOut = new ByteArrayOutputStream(); 00024 writeContentBuffer(contentOut); 00025 DataOutputStream socketOut = new DataOutputStream(new BufferedOutputStream(outputStream)); 00026 socketOut.write(Messages.Header); 00027 socketOut.writeInt(Messages.HeaderSize + contentOut.size()); 00028 socketOut.writeInt(type.ordinal()); 00029 socketOut.write(contentOut.toByteArray()); 00030 socketOut.flush(); 00031 } 00032 00033 @SuppressWarnings("unused") 00034 protected void writeContentBuffer(ByteArrayOutputStream out) throws IOException { 00035 } 00036 00037 public MessageType type() { 00038 return type; 00039 } 00040 }