public class Agent<S extends GlobalState> extends Vertex<S> implements Environment<S>
Constructor and Description |
---|
Agent() |
Modifier and Type | Method and Description |
---|---|
void |
deferMessages(java.util.List<Message> messages)
Postpone messages to be handled later.
|
void |
deliverMessage(Message message) |
DoubleAccumulator |
getDoubleAccumulator(java.lang.String name)
Gets a previously created Double Accumulator
|
S |
getGlobals()
Get a global value that the system has broadcast to all vertices.
|
long |
getGroupPosition() |
LongAccumulator |
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() |
int |
getPhaseCount() |
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. |
void |
setMessageTag(long tag)
Set the value of the message tag which will be embedded in each message sent by this
Environment.
|
void |
step(Environment<S> env) |
void |
stop()
Allow an vertex to stop it self.
|
addLink, addLink, addLinks, addLinks, dispose, getID, getLinks, getLinks, getLinksTo, getLinksTo, getPrng, hasLinks, hasLinks, hasLinksTo, hasLinksTo, removeLinks, removeLinks, removeLinksTo, removeLinksTo
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
deferMessages, getMessageOfType, hasMessageOfType, hasMessageOfType, hasMessagesOfType, hasMessagesOfType, send, send, send, send, send, send, send
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)
Environment
setMessageTag
in interface Environment<S extends GlobalState>
public long getMessageTag()
getMessageTag
in interface Environment<S extends GlobalState>
public S getGlobals()
Environment
getGlobals
in interface Environment<S extends GlobalState>
public <M extends Message> Messaging<M> send(java.lang.Class<M> clazz, java.util.function.Consumer<M> dataInjector)
Environment
Messaging
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 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 LongAccumulator getLongAccumulator(java.lang.String name)
Environment
getLongAccumulator
in interface Environment<S extends GlobalState>
name
- name of the accumulatorpublic DoubleAccumulator getDoubleAccumulator(java.lang.String name)
Environment
getDoubleAccumulator
in interface Environment<S extends GlobalState>
name
- name of the accumulatorpublic void stop()
Environment
stop
in interface Environment<S extends GlobalState>
public void deferMessages(java.util.List<Message> messages)
Environment
deferMessages
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()