|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.rlcommunity.rlglue.codec.network.Network
public class Network
This class does the heavy lifting of sendig and receiving data over the network. It is used by both the Java and Matlab codecs. The Socket has been changed (Feb 7 2009) to be offer a NON-BLOCKING option. The Java codec is JUST FINE using BLOCKING. NON-BLOCKING is for MATLAB. You may need NON-BLOCKING if you wanted to run an environment and/or agent and/or experiment all from the same Thread in Java. But why would you do that? You would have them in different Threads or preferably different processes, so none of this matters.
Field Summary | |
---|---|
static int |
kAgentCleanup
|
static int |
kAgentConnection
|
static int |
kAgentEnd
|
static int |
kAgentInit
|
static int |
kAgentMessage
|
static int |
kAgentStart
|
static int |
kAgentStep
|
protected static int |
kByteBufferDefaultSize
|
protected static int |
kCharSize
|
static java.lang.String |
kDefaultHost
|
static int |
kDefaultPort
|
protected static int |
kDoubleSize
|
static int |
kEnvCleanup
|
static int |
kEnvInit
|
static int |
kEnvironmentConnection
|
static int |
kEnvMessage
|
static int |
kEnvStart
|
static int |
kEnvStep
|
static int |
kExperimentConnection
|
static int |
kIntSize
|
static int |
kRetryTimeout
|
static int |
kRLAgentEnd
|
static int |
kRLAgentMessage
|
static int |
kRLAgentStart
|
static int |
kRLAgentStep
|
static int |
kRLCleanup
|
static int |
kRLEnvMessage
|
static int |
kRLEnvStart
|
static int |
kRLEnvStep
|
static int |
kRLEpisode
|
static int |
kRLInit
|
static int |
kRLNumEpisodes
|
static int |
kRLNumSteps
|
static int |
kRLReturn
|
static int |
kRLStart
|
static int |
kRLStep
|
static int |
kRLTerm
|
protected java.nio.channels.SocketChannel |
socketChannel
|
Constructor Summary | |
---|---|
Network()
|
Method Summary | |
---|---|
void |
clearRecvBuffer()
|
void |
clearSendBuffer()
|
protected static java.nio.ByteBuffer |
cloneWithCapacity(java.nio.ByteBuffer original,
int capacity)
|
void |
close()
|
void |
connect(java.lang.String host,
int port,
int retryTimeout)
|
boolean |
connect(java.lang.String host,
int port,
int retryTimeout,
boolean blocking)
Support for NON-BLOCKING added. |
boolean |
ensureConnected()
This can be used in NON-BLOCKING mode to be sure that the connection was made. |
protected void |
ensureRecvCapacityRemains(int capacity)
|
protected void |
ensureSendCapacityRemains(int capacity)
|
void |
flipRecvBuffer()
|
void |
flipSendBuffer()
|
Action |
getAction()
|
char |
getChar()
|
double |
getDouble()
|
double[] |
getDoubles(int howMany)
|
int |
getInt()
|
int |
getInt(int index)
|
int[] |
getInts(int howMany)
|
Observation |
getObservation()
|
java.lang.String |
getString()
Used for getting task spec and env/agent messages. |
boolean |
isConnected()
|
void |
putAbstractType(RL_abstract_type theObject)
|
void |
putAction(Action action)
|
void |
putChar(char c)
Brian Tanner adding this for RL-Glue 3.x compatibility Converts unicode (> 1 byte) char to 1 byte network char protocol |
void |
putDouble(double value)
|
void |
putDoubles(double[] values)
Experimental |
void |
putInt(int value)
|
void |
putInts(int[] values)
Experimental |
void |
putObservation(Observation obs)
|
void |
putRewardObservation(Reward_observation_terminal rewardObservation)
|
void |
putString(java.lang.String message)
|
int |
recv(int size)
This method has been updated. |
int |
recvNonBlock(int size)
This method has been added. |
int |
send()
|
static int |
sizeOf(double value)
|
static int |
sizeOf(int value)
|
static int |
sizeOf(Reward_observation_terminal rewardObservation)
|
static int |
sizeOf(RL_abstract_type theObject)
|
static int |
sizeOf(java.lang.String string)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int kExperimentConnection
public static final int kAgentConnection
public static final int kEnvironmentConnection
public static final int kAgentInit
public static final int kAgentStart
public static final int kAgentStep
public static final int kAgentEnd
public static final int kAgentCleanup
public static final int kAgentMessage
public static final int kEnvInit
public static final int kEnvStart
public static final int kEnvStep
public static final int kEnvCleanup
public static final int kEnvMessage
public static final int kRLInit
public static final int kRLStart
public static final int kRLStep
public static final int kRLCleanup
public static final int kRLReturn
public static final int kRLNumSteps
public static final int kRLNumEpisodes
public static final int kRLEpisode
public static final int kRLAgentMessage
public static final int kRLEnvMessage
public static final int kRLTerm
public static final int kRLEnvStart
public static final int kRLEnvStep
public static final int kRLAgentStart
public static final int kRLAgentStep
public static final int kRLAgentEnd
public static final java.lang.String kDefaultHost
public static final int kDefaultPort
public static final int kRetryTimeout
protected static final int kByteBufferDefaultSize
public static final int kIntSize
protected static final int kDoubleSize
protected static final int kCharSize
protected java.nio.channels.SocketChannel socketChannel
Constructor Detail |
---|
public Network()
Method Detail |
---|
public void connect(java.lang.String host, int port, int retryTimeout)
public boolean connect(java.lang.String host, int port, int retryTimeout, boolean blocking)
host
- port
- retryTimeout
- blocking
- public boolean ensureConnected()
java.io.IOException
public void close() throws java.io.IOException
java.io.IOException
public int send() throws java.io.IOException
java.io.IOException
public int recv(int size) throws java.io.IOException
size
-
java.io.IOException
public int recvNonBlock(int size) throws java.io.IOException
size
-
java.io.IOException
public boolean isConnected()
public void clearSendBuffer()
public void clearRecvBuffer()
public void flipSendBuffer()
public void flipRecvBuffer()
public int[] getInts(int howMany)
public double[] getDoubles(int howMany)
public int getInt()
public int getInt(int index)
public double getDouble()
public char getChar()
Thanks: http://bytes.com/forum/thread17160.html
public java.lang.String getString()
public Observation getObservation()
public Action getAction()
public void putInts(int[] values)
values
- public void putDoubles(double[] values)
values
- public void putInt(int value)
public void putDouble(double value)
public void putChar(char c)
Thanks http://bytes.com/forum/thread17160.html
c
- character to put into the buffer as bytepublic void putString(java.lang.String message) throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingException
public final void putAbstractType(RL_abstract_type theObject)
public void putObservation(Observation obs)
public void putAction(Action action)
public void putRewardObservation(Reward_observation_terminal rewardObservation)
protected void ensureSendCapacityRemains(int capacity)
protected void ensureRecvCapacityRemains(int capacity)
protected static java.nio.ByteBuffer cloneWithCapacity(java.nio.ByteBuffer original, int capacity)
public static int sizeOf(int value)
public static int sizeOf(double value)
public static int sizeOf(java.lang.String string)
public static int sizeOf(RL_abstract_type theObject)
public static int sizeOf(Reward_observation_terminal rewardObservation)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |