public abstract class BaseTransport extends Object implements Transport
Transport.ThreadingModel| Modifier and Type | Field and Description |
|---|---|
protected io.aeron.Aeron |
aeron |
protected Clipboard |
clipboard |
protected Map<Long,MeaningfulMessage> |
completed |
protected io.aeron.Aeron.Context |
context |
protected io.aeron.driver.MediaDriver |
driver |
protected org.agrona.concurrent.IdleStrategy |
feedbackIdler |
protected AtomicLong |
frameCount |
protected org.agrona.concurrent.IdleStrategy |
idler |
protected String |
ip |
protected io.aeron.FragmentAssembler |
messageHandlerForClients |
protected io.aeron.FragmentAssembler |
messageHandlerForShards |
protected LinkedBlockingQueue<VoidMessage> |
messages |
protected NodeRole |
nodeRole |
protected long |
originatorId |
protected int |
port |
protected io.aeron.Publication |
publicationForClients |
protected io.aeron.Publication |
publicationForShards |
protected AtomicBoolean |
runner |
protected short |
shardIndex |
protected io.aeron.Subscription |
subscriptionForClients |
protected io.aeron.Subscription |
subscriptionForShards |
protected short |
targetIndex |
protected Thread |
threadA |
protected Thread |
threadB |
protected Transport.ThreadingModel |
threadingModel |
protected String |
unicastChannelUri |
protected VoidConfiguration |
voidConfiguration |
| Constructor and Description |
|---|
BaseTransport() |
| Modifier and Type | Method and Description |
|---|---|
void |
addClient(String ip,
int port) |
void |
addShard(String ip,
int port) |
protected void |
clientMessageHandler(org.agrona.DirectBuffer buffer,
int offset,
int length,
io.aeron.logbuffer.Header header)
This message handler is responsible for receiving messages on Client side
|
String |
getIp() |
long |
getOwnOriginatorId()
This method returns ID of this Transport instance
|
int |
getPort() |
void |
init(VoidConfiguration voidConfiguration,
Clipboard clipboard,
NodeRole role,
String localIp,
int localPort,
short shardIndex)
This method does initialization of Transport instance
|
protected void |
internalMessageHandler(org.agrona.DirectBuffer buffer,
int offset,
int length,
io.aeron.logbuffer.Header header)
This message handler is responsible for receiving coordination messages on Shard side
|
void |
launch(Transport.ThreadingModel threading)
This method starts transport mechanisms.
|
int |
numberOfKnownClients()
This method returns number of known Clients
|
int |
numberOfKnownShards()
This method returns number of known Shards
|
VoidMessage |
peekMessage()
This method peeks 1 message from "incoming messages" queue, returning null if queue is empty
PLEASE NOTE: This method is suitable for debug purposes only
|
void |
putMessage(VoidMessage message)
This method puts message into processing queue
|
void |
receiveMessage(VoidMessage message)
This method saves incoming message to the Queue, for later dispatch from higher-level code, like actual TrainingFunction or VoidParameterServer itself
|
protected void |
sendCommandToShard(VoidMessage message)
This command is possible to issue only from Client
|
protected abstract void |
sendCoordinationCommand(VoidMessage message)
This command is possible to issue only from Shard
|
protected abstract void |
sendFeedbackToClient(VoidMessage message)
This command is possible to issue only from Shard
|
void |
sendMessage(VoidMessage message)
This method accepts message for delivery, routing is applied according on message type
|
MeaningfulMessage |
sendMessageAndGetResponse(VoidMessage message)
This method accepts message for delivery, and blocks until response delivered
|
void |
sendMessageToAllClients(VoidMessage message,
Long... exclusions) |
void |
sendMessageToAllShards(VoidMessage message) |
void |
setIpAndPort(String ip,
int port) |
protected void |
shardMessageHandler(org.agrona.DirectBuffer buffer,
int offset,
int length,
io.aeron.logbuffer.Header header)
This message handler is responsible for receiving messages on Shard side
|
void |
shutdown()
This method stops transport system.
|
protected void |
shutdownSilent() |
VoidMessage |
takeMessage()
This method takes 1 message from "incoming messages" queue, blocking if queue is empty
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetShardIndex, getTargetIndexprotected VoidConfiguration voidConfiguration
protected NodeRole nodeRole
protected io.aeron.Aeron aeron
protected io.aeron.Aeron.Context context
protected String unicastChannelUri
protected String ip
protected int port
protected io.aeron.driver.MediaDriver driver
protected io.aeron.Publication publicationForShards
protected io.aeron.Publication publicationForClients
protected io.aeron.Subscription subscriptionForShards
protected io.aeron.Subscription subscriptionForClients
protected io.aeron.FragmentAssembler messageHandlerForShards
protected io.aeron.FragmentAssembler messageHandlerForClients
protected LinkedBlockingQueue<VoidMessage> messages
protected Map<Long,MeaningfulMessage> completed
protected AtomicBoolean runner
protected Thread threadA
protected Thread threadB
protected Clipboard clipboard
protected AtomicLong frameCount
protected org.agrona.concurrent.IdleStrategy idler
protected org.agrona.concurrent.IdleStrategy feedbackIdler
protected Transport.ThreadingModel threadingModel
protected long originatorId
protected short targetIndex
protected short shardIndex
public long getOwnOriginatorId()
TransportgetOwnOriginatorId in interface Transportpublic MeaningfulMessage sendMessageAndGetResponse(@NonNull VoidMessage message)
TransportsendMessageAndGetResponse in interface Transportpublic void setIpAndPort(@NonNull
String ip,
int port)
setIpAndPort in interface Transportpublic void sendMessage(@NonNull
VoidMessage message)
TransportsendMessage in interface Transportprotected void shardMessageHandler(org.agrona.DirectBuffer buffer,
int offset,
int length,
io.aeron.logbuffer.Header header)
buffer - offset - length - header - protected void internalMessageHandler(org.agrona.DirectBuffer buffer,
int offset,
int length,
io.aeron.logbuffer.Header header)
buffer - offset - length - header - protected void clientMessageHandler(org.agrona.DirectBuffer buffer,
int offset,
int length,
io.aeron.logbuffer.Header header)
buffer - offset - length - header - public void sendMessageToAllShards(VoidMessage message)
sendMessageToAllShards in interface Transportmessage - public void init(VoidConfiguration voidConfiguration, Clipboard clipboard, NodeRole role, String localIp, int localPort, short shardIndex)
public void launch(@NonNull
Transport.ThreadingModel threading)
protected void shutdownSilent()
public void shutdown()
public void receiveMessage(VoidMessage message)
receiveMessage in interface Transportmessage - public VoidMessage takeMessage()
takeMessage in interface Transportpublic void putMessage(@NonNull
VoidMessage message)
putMessage in interface Transportmessage - public VoidMessage peekMessage()
peekMessage in interface Transportprotected void sendCommandToShard(VoidMessage message)
message - protected abstract void sendCoordinationCommand(VoidMessage message)
message - protected abstract void sendFeedbackToClient(VoidMessage message)
message - public int numberOfKnownClients()
TransportnumberOfKnownClients in interface Transportpublic int numberOfKnownShards()
TransportnumberOfKnownShards in interface Transportpublic void sendMessageToAllClients(VoidMessage message, Long... exclusions)
sendMessageToAllClients in interface TransportCopyright © 2017. All rights reserved.