public class Agent<S extends GlobalState> extends Vertex<S> implements Environment<S>
| Constructor and Description |
|---|
Agent() |
| Modifier and Type | Method and Description |
|---|---|
WindowedDouble |
createWindowedDouble(int ticks) |
WindowedLong |
createWindowedLong(int ticks) |
void |
deferMessages(java.util.List<Message> messages)
Postpone messages to be handled later.
|
void |
deferTask(java.util.function.Consumer<Vertex<? extends simudyne.core.graph.BaseGlobalState>> dataInjector)
Postpone the application of some Consumer until the end of the phase.
|
void |
deliverMessage(Message message) |
AgentContext |
getContext() |
DoubleAccumulatorView |
getDoubleAccumulator(java.lang.String name)
Gets a previously created Double Accumulator
|
protected Environment<S> |
getEnvironment() |
S |
getGlobals()
Get a global value that the system has broadcast to all vertices.
|
long |
getGroupPosition() |
LongAccumulatorView |
getLongAccumulator(java.lang.String name)
Gets a previously created Long Accumulator
|
java.util.Iterator<? extends Message> |
getMessageIterator() |
<T extends Message> |
getMessagesOfType(java.lang.Class<T> clazz) |
long |
getMessageTag() |
<T extends OrderedMessage> |
getOrderedMessagesOfType(java.lang.Class<T> clazz) |
int |
getPhaseCount() |
<any> |
getState() |
void |
init()
Initialise the Agent.
|
<M extends Message> |
send(java.lang.Class<M> clazz,
java.util.function.Consumer<M> dataInjector)
Create a
Messaging object for sending messages. |
<M extends OrderedMessage> |
sendOrdered(java.lang.Class<M> clazz,
java.util.function.Consumer<M> dataInjector) |
protected void |
setEnvironment(Environment<S> env) |
void |
setMessageTag(long tag)
Set the value of the message tag which will be embedded in each message sent by this
Environment.
|
<V extends Vertex<S>> |
spawn(java.lang.Class<V> vertexType) |
<V extends Vertex<S>> |
spawn(java.lang.Class<V> vertexType,
SerializableConsumer<V> dataInjector)
Creates a new agent.
|
void |
step(Environment<S> env) |
void |
stop()
Allow an vertex to stop it self.
|
addLink, addLink, addLink, addLink, addLinks, addLinks, dispose, getID, getLinks, getLinks, getLinksTo, getLinksTo, getPrng, hasLinks, hasLinks, hasLinksTo, hasLinksTo, removeLinks, removeLinks, removeLinksTo, removeLinksToclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdeferMessages, getMessageOfType, hasMessageOfType, hasMessageOfType, hasMessagesOfType, hasMessagesOfType, send, send, send, send, send, send, send, sendOrdered, sendOrdered, sendOrdered, sendOrdered, sendOrdered, sendOrdered, sendOrderedpublic <any> getState()
public void init()
public void step(Environment<S> env)
step in class Vertex<S extends GlobalState>public int getPhaseCount()
getPhaseCount in interface Environment<S extends GlobalState>public void setMessageTag(long tag)
EnvironmentsetMessageTag in interface Environment<S extends GlobalState>public long getMessageTag()
getMessageTag in interface Environment<S extends GlobalState>public <V extends Vertex<S>> simudyne.core.graph.PreSpawnedAgent<?> spawn(java.lang.Class<V> vertexType, SerializableConsumer<V> dataInjector)
Environmentspawn in interface Environment<S extends GlobalState>public <V extends Vertex<S>> simudyne.core.graph.PreSpawnedAgent<?> spawn(java.lang.Class<V> vertexType)
spawn in interface Environment<S extends GlobalState>Environment.spawn(Class, SerializableConsumer)public AgentContext getContext()
getContext in interface Environment<S extends GlobalState>public S getGlobals()
EnvironmentgetGlobals in interface Environment<S extends GlobalState>public <M extends Message> Messaging<M> send(java.lang.Class<M> clazz, java.util.function.Consumer<M> dataInjector)
EnvironmentMessaging object for sending messages.send in interface Environment<S extends GlobalState>clazz - Class of message to send. Must be a message class extending Message.dataInjector - Function run when each message is created which can be used to set its
values.public <M extends OrderedMessage> Messaging<M> sendOrdered(java.lang.Class<M> clazz, java.util.function.Consumer<M> dataInjector)
sendOrdered in interface Environment<S extends GlobalState>public <T extends OrderedMessage> java.util.List<T> getOrderedMessagesOfType(java.lang.Class<T> clazz)
public java.util.Iterator<? extends Message> getMessageIterator()
getMessageIterator in interface Environment<S extends GlobalState>public <T extends Message> java.util.List<T> getMessagesOfType(java.lang.Class<T> clazz)
getMessagesOfType in interface Environment<S extends GlobalState>public LongAccumulatorView getLongAccumulator(java.lang.String name)
EnvironmentgetLongAccumulator in interface Environment<S extends GlobalState>name - name of the accumulatorpublic DoubleAccumulatorView getDoubleAccumulator(java.lang.String name)
EnvironmentgetDoubleAccumulator in interface Environment<S extends GlobalState>name - name of the accumulatorpublic void stop()
Environmentstop in interface Environment<S extends GlobalState>public void deferMessages(java.util.List<Message> messages)
EnvironmentdeferMessages in interface Environment<S extends GlobalState>messages - The list of messages to be deferred.public void deliverMessage(Message message)
deliverMessage in interface Environment<S extends GlobalState>public long getGroupPosition()
public void deferTask(java.util.function.Consumer<Vertex<? extends simudyne.core.graph.BaseGlobalState>> dataInjector)
EnvironmentdeferTask in interface Environment<S extends GlobalState>dataInjector - The Consumer that will be applied on the Vertex at the end of the phase.public WindowedLong createWindowedLong(int ticks)
public WindowedDouble createWindowedDouble(int ticks)
protected void setEnvironment(Environment<S> env)
setEnvironment in class Vertex<S extends GlobalState>protected Environment<S> getEnvironment()
getEnvironment in class Vertex<S extends GlobalState>