public static final class MediaDriver.Context extends CommonContext
MediaDriver
that can be used to provide overrides for Configuration
.
Note: Do not reuse instances of this MediaDriver.Context
across different MediaDriver
s.
The context will be owned by DriverConductor
after a successful
MediaDriver.launch(Context)
and closed via MediaDriver.close()
.
CommonContext.InferableBoolean
AERON_DIR_PROP_DEFAULT, AERON_DIR_PROP_NAME, ALIAS_PARAM_NAME, CHANNEL_RECEIVE_TIMESTAMP_OFFSET_PARAM_NAME, CHANNEL_SEND_TIMESTAMP_OFFSET_PARAM_NAME, CONGESTION_CONTROL_PARAM_NAME, DEBUG_TIMEOUT_PROP_NAME, DEFAULT_DRIVER_TIMEOUT_MS, DRIVER_TIMEOUT_MS, DRIVER_TIMEOUT_PROP_NAME, ENDPOINT_PARAM_NAME, EOS_PARAM_NAME, FALLBACK_LOGGER_PROP_NAME, FLOW_CONTROL_PARAM_NAME, GROUP_PARAM_NAME, GROUP_TAG_PARAM_NAME, INITIAL_TERM_ID_PARAM_NAME, INTERFACE_PARAM_NAME, IPC_CHANNEL, IPC_MEDIA, LINGER_PARAM_NAME, MDC_CONTROL_MODE_DYNAMIC, MDC_CONTROL_MODE_MANUAL, MDC_CONTROL_MODE_PARAM_NAME, MDC_CONTROL_PARAM_NAME, MEDIA_RCV_TIMESTAMP_OFFSET_PARAM_NAME, MTU_LENGTH_PARAM_NAME, NULL_SESSION_ID, RECEIVER_WINDOW_LENGTH_PARAM_NAME, REJOIN_PARAM_NAME, RELIABLE_STREAM_PARAM_NAME, RESERVED_OFFSET, SESSION_ID_PARAM_NAME, SOCKET_RCVBUF_PARAM_NAME, SOCKET_SNDBUF_PARAM_NAME, SPARSE_PARAM_NAME, SPIES_SIMULATE_CONNECTION_PARAM_NAME, SPY_PREFIX, TAG_PREFIX, TAGS_PARAM_NAME, TERM_ID_PARAM_NAME, TERM_LENGTH_PARAM_NAME, TERM_OFFSET_PARAM_NAME, TETHER_PARAM_NAME, TTL_PARAM_NAME, UDP_CHANNEL, UDP_MEDIA
Constructor and Description |
---|
Context() |
Modifier and Type | Method and Description |
---|---|
MediaDriver.Context |
aeronDirectoryName(String dirName)
Set the top level Aeron directory used for communication between the client and Media Driver, and the location
of the data buffers.
|
byte[] |
applicationSpecificFeedback()
Deprecated.
|
MediaDriver.Context |
applicationSpecificFeedback(byte[] asfBytes)
Deprecated.
|
CachedEpochClock |
cachedEpochClock()
The
CachedEpochClock as a source of time in milliseconds for wall clock time. |
MediaDriver.Context |
cachedEpochClock(CachedEpochClock clock)
The
CachedEpochClock as a source of time in milliseconds for wall clock time. |
CachedNanoClock |
cachedNanoClock()
The
CachedNanoClock as a source of time in nanoseconds for measuring duration. |
MediaDriver.Context |
cachedNanoClock(CachedNanoClock clock)
The
CachedNanoClock as a source of time in nanoseconds for measuring duration for the
DriverConductor . |
EpochNanoClock |
channelReceiveTimestampClock()
Clock used record channel receive timestamps.
|
EpochNanoClock |
channelSendTimestampClock()
Clock used record channel send timestamps.
|
long |
clientLivenessTimeoutNs()
Time in nanoseconds after which a client is considered dead if a keep alive is not received.
|
MediaDriver.Context |
clientLivenessTimeoutNs(long timeoutNs)
Time in nanoseconds after which a client is considered dead if a keep alive is not received.
|
MediaDriver.Context |
clone()
Perform a shallow copy of the object.
|
void |
close()
Free up resources but don't delete files in case they are required for debugging unless
dirDeleteOnShutdown() is set. |
MediaDriver.Context |
conclude()
This completes initialization of the CommonContext object.
|
int |
conductorBufferLength()
Length of the
RingBuffer for sending commands to the driver conductor from clients. |
MediaDriver.Context |
conductorBufferLength(int length)
Length of the
RingBuffer for sending commands to the driver conductor from clients. |
long |
conductorCycleThresholdNs()
Threshold for the conductor work cycle time which when exceed it will increment the
SystemCounterDescriptor.CONDUCTOR_CYCLE_TIME_THRESHOLD_EXCEEDED counter. |
MediaDriver.Context |
conductorCycleThresholdNs(long thresholdNs)
Set a threshold for the conductor work cycle time which when exceed it will increment the
SystemCounterDescriptor.CONDUCTOR_CYCLE_TIME_THRESHOLD_EXCEEDED counter. |
IdleStrategy |
conductorIdleStrategy()
IdleStrategy to be used by the DriverConductor when in ThreadingMode.DEDICATED
or ThreadingMode.SHARED_NETWORK . |
MediaDriver.Context |
conductorIdleStrategy(IdleStrategy strategy)
IdleStrategy to be used by the DriverConductor when in ThreadingMode.DEDICATED
or ThreadingMode.SHARED_NETWORK . |
ThreadFactory |
conductorThreadFactory()
ThreadFactory to be used for creating agent thread for the DriverConductor when running in
ThreadingMode.DEDICATED or ThreadingMode.SHARED_NETWORK . |
MediaDriver.Context |
conductorThreadFactory(ThreadFactory factory)
ThreadFactory to be used for creating agent thread for the DriverConductor when running in
ThreadingMode.DEDICATED or ThreadingMode.SHARED_NETWORK . |
MediaDriver.Context |
congestControlSupplier(CongestionControlSupplier supplier)
Supplier of dynamically created
CongestionControl strategies for individual connections. |
CongestionControlSupplier |
congestionControlSupplier()
Supplier of dynamically created
CongestionControl strategies for individual connections. |
long |
counterFreeToReuseTimeoutNs()
Time in nanoseconds after which a freed counter may be reused.
|
MediaDriver.Context |
counterFreeToReuseTimeoutNs(long counterFreeToReuseTimeoutNs)
Time in nanoseconds after which a freed counter may be reused.
|
CountersManager |
countersManager()
Get the
CountersManager that has been concluded for this context. |
MediaDriver.Context |
countersManager(CountersManager countersManager)
Set the
CountersManager to override the one that would have been concluded. |
MediaDriver.Context |
countersMetaDataBuffer(UnsafeBuffer countersMetaDataBuffer)
Set the buffer containing the counter metadata.
|
MediaDriver.Context |
countersValuesBuffer(UnsafeBuffer countersValuesBuffer)
Set the buffer containing the counters.
|
int |
counterValuesBufferLength()
Length of the buffer for storing values by the
CountersManager . |
MediaDriver.Context |
counterValuesBufferLength(int length)
Length of the buffer for storing values by the
CountersManager . |
void |
deleteDirectory()
Delete the directory used by the
MediaDriver which delegates to
CommonContext.deleteAeronDirectory() . |
boolean |
dirDeleteOnShutdown()
Will the driver attempt to delete
CommonContext.aeronDirectoryName() on shutdown. |
MediaDriver.Context |
dirDeleteOnShutdown(boolean dirDeleteOnShutdown)
Should the driver attempt to delete
CommonContext.aeronDirectoryName() on shutdown. |
boolean |
dirDeleteOnStart()
Will the driver attempt to immediately delete
CommonContext.aeronDirectoryName() on startup. |
MediaDriver.Context |
dirDeleteOnStart(boolean dirDeleteOnStart)
Should the driver attempt to immediately delete
CommonContext.aeronDirectoryName() on startup. |
MediaDriver.Context |
driverTimeoutMs(long value)
Set the driver timeout in milliseconds
|
EpochClock |
epochClock()
The
EpochClock as a source of time in milliseconds for wall clock time. |
MediaDriver.Context |
epochClock(EpochClock clock)
The
EpochClock as a source of time in milliseconds for wall clock time. |
int |
errorBufferLength()
Length of the
DistinctErrorLog buffer for recording exceptions. |
MediaDriver.Context |
errorBufferLength(int length)
Length of the
DistinctErrorLog buffer for recording exceptions. |
ErrorHandler |
errorHandler()
ErrorHandler to be used for reporting errors during Agent s operations. |
MediaDriver.Context |
errorHandler(ErrorHandler errorHandler)
ErrorHandler to be used for reporting errors during Agent s operations. |
DistinctErrorLog |
errorLog()
Log to which exceptions are recorded.
|
MediaDriver.Context |
errorLog(DistinctErrorLog errorLog)
Log to which exceptions are recorded.
|
int |
filePageSize()
Page size for alignment of all files.
|
MediaDriver.Context |
filePageSize(int filePageSize)
Page size for alignment of all files.
|
int |
flowControlGroupMinSize()
Get the default min group size used by flow control strategies to indicate connectivity.
|
MediaDriver.Context |
flowControlGroupMinSize(int groupSize)
Set the default min group size used by flow control strategies to indicate connectivity.
|
long |
flowControlGroupTag()
Get the default group tag (gtag) to be used by the tagged flow control strategy.
|
MediaDriver.Context |
flowControlGroupTag(long groupTag)
Set the default group tag (gtag) to be used by the tagged flow control strategy.
|
long |
flowControlReceiverTimeoutNs()
Timeout for min multicast flow control strategy.
|
MediaDriver.Context |
flowControlReceiverTimeoutNs(long timeoutNs)
Timeout for min multicast flow control strategy.
|
long |
imageLivenessTimeoutNs()
Time in nanoseconds an Image will be kept alive for its subscribers to consume it once disconnected.
|
MediaDriver.Context |
imageLivenessTimeoutNs(long timeout)
Time in nanoseconds an Image will be kept alive after for its subscribers to consume it once disconnected.
|
int |
initialWindowLength()
The initial window for in flight data on a connection which must be less than
Configuration.SOCKET_RCVBUF_LENGTH_PROP_NAME . |
MediaDriver.Context |
initialWindowLength(int initialWindowLength)
The initial window for in flight data on a connection which must be less than
Configuration.SOCKET_RCVBUF_LENGTH_PROP_NAME . |
int |
ipcMtuLength()
MTU in bytes for datagrams sent over shared memory.
|
MediaDriver.Context |
ipcMtuLength(int ipcMtuLength)
MTU in bytes for datagrams sent over shared memory.
|
int |
ipcPublicationTermWindowLength()
Default length for a term buffer window on an IPC publication.
|
MediaDriver.Context |
ipcPublicationTermWindowLength(int termWindowLength)
Default length for a term buffer window on an IPC publication.
|
int |
ipcTermBufferLength()
Default length for a term buffer on an IPC publication.
|
MediaDriver.Context |
ipcTermBufferLength(int termBufferLength)
Default length for a term buffer on an IPC publication.
|
int |
lossReportBufferLength()
The length in bytes of the loss report buffer.
|
MediaDriver.Context |
lossReportBufferLength(int length)
The length in bytes of the loss report buffer.
|
long |
lowStorageWarningThreshold()
Get the threshold in bytes below which storage warnings are issued.
|
MediaDriver.Context |
lowStorageWarningThreshold(long lowStorageWarningThreshold)
Get the threshold in bytes below which storage warnings are issued.
|
int |
mtuLength()
MTU in bytes for datagrams sent to the network.
|
MediaDriver.Context |
mtuLength(int mtuLength)
MTU in bytes for datagrams sent to the network.
|
FeedbackDelayGenerator |
multicastFeedbackDelayGenerator()
FeedbackDelayGenerator for controlling the delay of sending NAK feedback on multicast. |
MediaDriver.Context |
multicastFeedbackDelayGenerator(FeedbackDelayGenerator feedbackDelayGenerator)
Set the
FeedbackDelayGenerator for controlling the delay of sending NAK feedback on multicast. |
FlowControlSupplier |
multicastFlowControlSupplier()
Supplier of dynamically created
FlowControl strategies for multicast connections. |
MediaDriver.Context |
multicastFlowControlSupplier(FlowControlSupplier flowControlSupplier)
Supplier of dynamically created
FlowControl strategies for multicast connections. |
int |
nakMulticastGroupSize()
Estimate of the multicast receiver group size on a stream.
|
MediaDriver.Context |
nakMulticastGroupSize(int nakMulticastGroupSize)
Estimate of the multicast receiver group size on a stream.
|
long |
nakMulticastMaxBackoffNs()
The maximum time to backoff before sending a NAK on multicast.
|
MediaDriver.Context |
nakMulticastMaxBackoffNs(long nakMulticastMaxBackoffNs)
The maximum time to backoff before sending a NAK on multicast.
|
long |
nakUnicastDelayNs()
The delay before retransmission after an NAK on unicast.
|
MediaDriver.Context |
nakUnicastDelayNs(long nakUnicastDelayNs)
The delay before retransmission after an NAK on unicast.
|
NameResolver |
nameResolver()
Get the
NameResolver to use for resolving endpoints and control names. |
MediaDriver.Context |
nameResolver(NameResolver nameResolver)
Set the
NameResolver to use for resolving endpoints and control names. |
NanoClock |
nanoClock()
The
NanoClock as a source of time in nanoseconds for measuring duration. |
MediaDriver.Context |
nanoClock(NanoClock clock)
The
NanoClock as a source of time in nanoseconds for measuring duration. |
boolean |
performStorageChecks()
Should the driver perform storage checks when allocating files.
|
MediaDriver.Context |
performStorageChecks(boolean performStorageChecks)
Should the driver perform storage checks when allocating files.
|
boolean |
printConfigurationOnStart()
Should the driver print its configuration on start to
System.out at the end of conclude() . |
MediaDriver.Context |
printConfigurationOnStart(boolean printConfigurationOnStart)
Should the driver print its configuration on start to
System.out at the end of conclude() . |
long |
publicationConnectionTimeoutNs()
Timeout in nanoseconds after which a publication will be considered not connected if no status messages are
received.
|
MediaDriver.Context |
publicationConnectionTimeoutNs(long timeoutNs)
Timeout in nanoseconds after which a publication will be considered not connected if no status messages are
received.
|
long |
publicationLingerTimeoutNs()
Time in nanoseconds a publication will linger once it is drained to recover potential tail loss.
|
MediaDriver.Context |
publicationLingerTimeoutNs(long timeoutNs)
Time in nanoseconds a publication will linger once it is drained to recover potential tail loss.
|
int |
publicationReservedSessionIdHigh()
High end of the publication reserved session id range which will not be automatically assigned.
|
MediaDriver.Context |
publicationReservedSessionIdHigh(int sessionId)
High end of the publication reserved session id range which will not be automatically assigned.
|
int |
publicationReservedSessionIdLow()
Low end of the publication reserved session id range which will not be automatically assigned.
|
MediaDriver.Context |
publicationReservedSessionIdLow(int sessionId)
Low end of the publication reserved session id range which will not be automatically assigned.
|
int |
publicationTermBufferLength()
Default length for a term buffer on a network publication.
|
MediaDriver.Context |
publicationTermBufferLength(int termBufferLength)
Default length for a term buffer on a network publication.
|
int |
publicationTermWindowLength()
Default length for a term buffer window on a network publication.
|
MediaDriver.Context |
publicationTermWindowLength(int termWindowLength)
Default length for a term buffer window on a network publication.
|
long |
publicationUnblockTimeoutNs()
Timeout in nanoseconds after which a publication will be unblocked if an offer is partially complete to allow
other publishers to make progress.
|
MediaDriver.Context |
publicationUnblockTimeoutNs(long timeoutNs)
Timeout in nanoseconds after which a publication will be unblocked if an offer is partially complete to allow
other publishers to make progress.
|
ReceiveChannelEndpointSupplier |
receiveChannelEndpointSupplier()
Supplier of dynamically created
ReceiveChannelEndpoint subclasses for specialising interactions
with the receive side of a network channel. |
MediaDriver.Context |
receiveChannelEndpointSupplier(ReceiveChannelEndpointSupplier supplier)
Supplier of dynamically created
ReceiveChannelEndpoint subclasses for specialising interactions
with the receive side of a network channel. |
ReceiveChannelEndpointThreadLocals |
receiveChannelEndpointThreadLocals()
The thread local buffers and associated objects for use by subclasses of
ReceiveChannelEndpoint . |
MediaDriver.Context |
receiveChannelEndpointThreadLocals(ReceiveChannelEndpointThreadLocals threadLocals)
The thread local buffers and associated objects for use by subclasses of
ReceiveChannelEndpoint . |
CachedNanoClock |
receiverCachedNanoClock()
The
CachedNanoClock as a source of time in nanoseconds for measuring duration. |
MediaDriver.Context |
receiverCachedNanoClock(CachedNanoClock clock)
The
CachedNanoClock as a source of time in nanoseconds for measuring duration for the
Receiver . |
CommonContext.InferableBoolean |
receiverGroupConsideration()
Should network subscriptions be considered part of a group even if using a unicast endpoint, should it be
considered an individual even if using a multicast endpoint, or should the use of a unicast/multicast
endpoint infer the usage.
|
MediaDriver.Context |
receiverGroupConsideration(CommonContext.InferableBoolean receiverGroupConsideration)
Should network subscriptions be considered part of a group even if using a unicast endpoint, should it be
considered an individual even if using a multicast endpoint, or should the use of a unicast/multicast
endpoint infer the usage.
|
Long |
receiverGroupTag()
Get the group tag (gtag) to be sent in Status Messages from the Receiver.
|
MediaDriver.Context |
receiverGroupTag(Long groupTag)
Set the group tag (gtag) to be sent in Status Messages from the Receiver.
|
IdleStrategy |
receiverIdleStrategy()
|
MediaDriver.Context |
receiverIdleStrategy(IdleStrategy strategy)
|
ThreadFactory |
receiverThreadFactory()
ThreadFactory to be used for creating agent thread for the Receiver when running in
ThreadingMode.DEDICATED . |
MediaDriver.Context |
receiverThreadFactory(ThreadFactory factory)
ThreadFactory to be used for creating agent thread for the Receiver when running in
ThreadingMode.DEDICATED . |
boolean |
rejoinStream()
Does a subscription attempt to rejoin an unavailable stream after a cooldown or not.
|
MediaDriver.Context |
rejoinStream(boolean rejoinStream)
Does a subscription attempt to rejoin an unavailable stream after a cooldown or not.
|
boolean |
reliableStream()
Does a stream NAK when loss is detected, reliable=true, or gap fill, reliable=false.
|
MediaDriver.Context |
reliableStream(boolean reliableStream)
Does a stream NAK when loss is detected, reliable=true, or gap fill, reliable=false.
|
long |
reResolutionCheckIntervalNs()
Get the interval for checking if a re-resolution for endpoints and controls should be done.
|
MediaDriver.Context |
reResolutionCheckIntervalNs(long reResolutionCheckIntervalNs)
Set the interval for checking if a re-resolution for endpoints and controls should be done.
|
String |
resolverBootstrapNeighbor()
Get the bootstrap neighbor of the
MediaDriver for name resolver purposes. |
MediaDriver.Context |
resolverBootstrapNeighbor(String resolverBootstrapNeighbor)
Set the bootstrap neighbor of the
MediaDriver for name resolver purposes. |
String |
resolverInterface()
Get the interface of the
MediaDriver for name resolver purposes. |
MediaDriver.Context |
resolverInterface(String resolverInterface)
Set the interface of the
MediaDriver for name resolver purposes. |
String |
resolverName()
Get the name of the
MediaDriver for name resolver purposes. |
MediaDriver.Context |
resolverName(String resolverName)
Set the name of the
MediaDriver for name resolver purposes. |
FeedbackDelayGenerator |
retransmitUnicastDelayGenerator()
FeedbackDelayGenerator for controlling the delay before sending a retransmit frame. |
MediaDriver.Context |
retransmitUnicastDelayGenerator(FeedbackDelayGenerator feedbackDelayGenerator)
Set the
FeedbackDelayGenerator for controlling the delay before sending a retransmit frame. |
long |
retransmitUnicastDelayNs()
The delay before retransmitting after a NAK.
|
MediaDriver.Context |
retransmitUnicastDelayNs(long retransmitUnicastDelayNs)
The delay before retransmitting after a NAK.
|
FeedbackDelayGenerator |
retransmitUnicastLingerGenerator()
FeedbackDelayGenerator for controlling the linger after a retransmit. |
MediaDriver.Context |
retransmitUnicastLingerGenerator(FeedbackDelayGenerator feedbackDelayGenerator)
Set the
FeedbackDelayGenerator for controlling the linger after a retransmit frame. |
long |
retransmitUnicastLingerNs()
How long to linger after delay on a NAK before responding to another NAK.
|
MediaDriver.Context |
retransmitUnicastLingerNs(long retransmitUnicastLingerNs)
How long to linger after delay on a NAK before responding to another NAK.
|
SendChannelEndpointSupplier |
sendChannelEndpointSupplier()
Supplier of dynamically created
SendChannelEndpoint subclasses for specialising interactions
with the send side of a network channel. |
MediaDriver.Context |
sendChannelEndpointSupplier(SendChannelEndpointSupplier supplier)
Supplier of dynamically created
SendChannelEndpoint subclasses for specialising interactions
with the send side of a network channel. |
CachedNanoClock |
senderCachedNanoClock()
The
CachedNanoClock as a source of time in nanoseconds for measuring duration. |
MediaDriver.Context |
senderCachedNanoClock(CachedNanoClock clock)
The
CachedNanoClock as a source of time in nanoseconds for measuring duration for the
Sender . |
IdleStrategy |
senderIdleStrategy()
|
MediaDriver.Context |
senderIdleStrategy(IdleStrategy strategy)
|
ThreadFactory |
senderThreadFactory()
ThreadFactory to be used for creating agent thread for the Sender when running in
ThreadingMode.DEDICATED . |
MediaDriver.Context |
senderThreadFactory(ThreadFactory factory)
ThreadFactory to be used for creating agent thread for the Sender when running in
ThreadingMode.DEDICATED . |
int |
sendToStatusMessagePollRatio()
Get the ratio for sending data to polling status messages in the Sender.
|
MediaDriver.Context |
sendToStatusMessagePollRatio(int ratio)
Set the ratio for sending data to polling status messages in the Sender.
|
IdleStrategy |
sharedIdleStrategy()
IdleStrategy to be used by the Sender , Receiver and DriverConductor
agents when in ThreadingMode.SHARED . |
MediaDriver.Context |
sharedIdleStrategy(IdleStrategy strategy)
IdleStrategy to be used by the Sender , Receiver and DriverConductor
agents when in ThreadingMode.SHARED . |
IdleStrategy |
sharedNetworkIdleStrategy()
|
MediaDriver.Context |
sharedNetworkIdleStrategy(IdleStrategy strategy)
|
ThreadFactory |
sharedNetworkThreadFactory()
ThreadFactory to be used for creating agent thread for the sender and receiver agents as a
CompositeAgent when running in ThreadingMode.SHARED_NETWORK . |
MediaDriver.Context |
sharedNetworkThreadFactory(ThreadFactory factory)
ThreadFactory to be used for creating agent thread for the sender and receiver agents as a
CompositeAgent when running in ThreadingMode.SHARED_NETWORK . |
ThreadFactory |
sharedThreadFactory()
ThreadFactory to be used for creating agent thread for the all driver agents as a
CompositeAgent when running in ThreadingMode.SHARED . |
MediaDriver.Context |
sharedThreadFactory(ThreadFactory factory)
ThreadFactory to be used for creating agent thread for the all driver agents as a
CompositeAgent when running in ThreadingMode.SHARED . |
int |
socketMulticastTtl()
The TTL value to be used for multicast sockets.
|
MediaDriver.Context |
socketMulticastTtl(int ttl)
TTL value to be used for multicast sockets.
|
int |
socketRcvbufLength()
The socket send buffer length which is the OS SO_RCVBUF.
|
MediaDriver.Context |
socketRcvbufLength(int socketRcvbufLength)
The socket send buffer length which is the OS SO_RCVBUF.
|
int |
socketSndbufLength()
The socket send buffer length which is the OS SO_SNDBUF.
|
MediaDriver.Context |
socketSndbufLength(int socketSndbufLength)
The socket send buffer length which is the OS SO_SNDBUF.
|
boolean |
spiesSimulateConnection()
Does a spy subscription simulate a connection to a network publication.
|
MediaDriver.Context |
spiesSimulateConnection(boolean spiesSimulateConnection)
Does a spy subscription simulate a connection to a network publication.
|
long |
statusMessageTimeoutNs()
Time in nanoseconds after which a status message will be sent if data is flowing slowly.
|
MediaDriver.Context |
statusMessageTimeoutNs(long statusMessageTimeoutNs)
Time in nanoseconds after which a status message will be sent if data is flowing slowly.
|
SystemCounters |
systemCounters()
The
SystemCounters for the driver for recording aggregate events of system status. |
MediaDriver.Context |
systemCounters(SystemCounters systemCounters)
The
SystemCounters for the driver for recording aggregate events of system status. |
MutableDirectBuffer |
tempBuffer()
The temporary buffer than can be used to build up counter labels to avoid allocation.
|
MediaDriver.Context |
tempBuffer(MutableDirectBuffer tempBuffer)
Set the temporary buffer than can be used to build up counter labels to avoid allocation.
|
boolean |
termBufferSparseFile()
Should the term buffers be created with sparse files?
|
MediaDriver.Context |
termBufferSparseFile(boolean termBufferSparseFile)
Should the term buffer be created with sparse files?
|
Runnable |
terminationHook()
Get the
Runnable that is called when the MediaDriver processes a valid termination request. |
MediaDriver.Context |
terminationHook(Runnable terminationHook)
Set the
Runnable that is called when the MediaDriver processes a valid termination request. |
TerminationValidator |
terminationValidator()
Get the
TerminationValidator to be used to validate termination requests. |
MediaDriver.Context |
terminationValidator(TerminationValidator validator)
Set the
TerminationValidator to be used to validate termination requests. |
boolean |
tetherSubscriptions()
Do subscriptions have a tether, so they participate in local flow control when more than one.
|
MediaDriver.Context |
tetherSubscriptions(boolean tetherSubscription)
Do subscriptions have a tether so, they participate in local flow control when more than one.
|
ThreadingMode |
threadingMode()
ThreadingMode that should be used for the driver. |
MediaDriver.Context |
threadingMode(ThreadingMode threadingMode)
ThreadingMode that should be used for the driver. |
long |
timerIntervalNs()
Interval in nanoseconds between checks for timers and timeouts.
|
MediaDriver.Context |
timerIntervalNs(long timerIntervalNs)
Interval in nanoseconds between checks for timers and timeouts.
|
int |
toClientsBufferLength()
Length of the
BroadcastTransmitter buffer for sending events to the clients. |
MediaDriver.Context |
toClientsBufferLength(int length)
Length of the
BroadcastTransmitter buffer for sending events to the clients. |
String |
toString() |
FeedbackDelayGenerator |
unicastFeedbackDelayGenerator()
FeedbackDelayGenerator for controlling the delay of sending NAK feedback on unicast. |
MediaDriver.Context |
unicastFeedbackDelayGenerator(FeedbackDelayGenerator feedbackDelayGenerator)
Set the
FeedbackDelayGenerator for controlling the delay of sending NAK feedback on unicast. |
FlowControlSupplier |
unicastFlowControlSupplier()
Supplier of dynamically created
FlowControl strategies for unicast connections. |
MediaDriver.Context |
unicastFlowControlSupplier(FlowControlSupplier flowControlSupplier)
Supplier of dynamically created
FlowControl strategies for unicast connections. |
long |
untetheredRestingTimeoutNs()
Timeout for when an untethered subscription is resting after not being able to keep up before it is allowed
to rejoin a stream.
|
MediaDriver.Context |
untetheredRestingTimeoutNs(long timeoutNs)
Timeout for when an untethered subscription is resting after not being able to keep up before it is allowed
to rejoin a stream.
|
long |
untetheredWindowLimitTimeoutNs()
The timeout for when an untethered subscription that is outside the window will participate
in local flow control.
|
MediaDriver.Context |
untetheredWindowLimitTimeoutNs(long timeoutNs)
The timeout for when an untethered subscription that is outside the window will participate
in local flow control.
|
boolean |
useConcurrentCountersManager()
Should a
ConcurrentCountersManager be used to allow for cross thread usage. |
MediaDriver.Context |
useConcurrentCountersManager(boolean useConcurrentCountersManager)
Should a
ConcurrentCountersManager be used to allow for cross thread usage. |
boolean |
useWindowsHighResTimer()
Should an attempt be made to use the high resolution timers for waiting on Windows.
|
MediaDriver.Context |
useWindowsHighResTimer(boolean useWindowsHighResTimers)
Should an attempt be made to use the high resolution timers for waiting on Windows.
|
boolean |
warnIfDirectoryExists()
Should a warning be issued if the
CommonContext.aeronDirectoryName() exists? |
MediaDriver.Context |
warnIfDirectoryExists(boolean warnIfDirectoryExists)
Should a warning be issued if the
CommonContext.aeronDirectoryName() exists? |
aeronDirectory, aeronDirectoryName, checkDebugTimeout, cncFile, concludeAeronDirectory, countersMetaDataBuffer, countersValuesBuffer, deleteAeronDirectory, driverTimeoutMs, errorLogBuffer, fallbackLogger, generateRandomDirName, getAeronDirectoryName, isConcluded, isDriverActive, isDriverActive, isDriverActive, mapExistingCncFile, newCncFile, newDefaultCncFile, printErrorLog, requestDriverTermination, saveErrorLog, saveErrorLog, saveExistingErrors, setupErrorHandler
public MediaDriver.Context clone()
clone
in class CommonContext
public void close()
dirDeleteOnShutdown()
is set.close
in class CommonContext
public MediaDriver.Context conclude()
conclude
in class CommonContext
public void deleteDirectory()
MediaDriver
which delegates to
CommonContext.deleteAeronDirectory()
.public MediaDriver.Context aeronDirectoryName(String dirName)
aeronDirectoryName
in class CommonContext
dirName
- New top level Aeron directory.public MediaDriver.Context driverTimeoutMs(long value)
driverTimeoutMs
in class CommonContext
value
- to indicate liveness of driverpublic MediaDriver.Context countersMetaDataBuffer(UnsafeBuffer countersMetaDataBuffer)
countersMetaDataBuffer
in class CommonContext
countersMetaDataBuffer
- The new counter metadata buffer.public MediaDriver.Context countersValuesBuffer(UnsafeBuffer countersValuesBuffer)
countersValuesBuffer
in class CommonContext
countersValuesBuffer
- The new counters buffer.public boolean printConfigurationOnStart()
System.out
at the end of conclude()
.Configuration.PRINT_CONFIGURATION_ON_START_PROP_NAME
public MediaDriver.Context printConfigurationOnStart(boolean printConfigurationOnStart)
System.out
at the end of conclude()
.printConfigurationOnStart
- if the configuration should be printed on start.Configuration.PRINT_CONFIGURATION_ON_START_PROP_NAME
public MediaDriver.Context useWindowsHighResTimer(boolean useWindowsHighResTimers)
useWindowsHighResTimers
- Should an attempt be made to use the high-res timers for waiting on Windows.Configuration.USE_WINDOWS_HIGH_RES_TIMER_PROP_NAME
public boolean useWindowsHighResTimer()
Configuration.USE_WINDOWS_HIGH_RES_TIMER_PROP_NAME
public boolean warnIfDirectoryExists()
CommonContext.aeronDirectoryName()
exists?CommonContext.aeronDirectoryName()
exists?Configuration.DIR_WARN_IF_EXISTS_PROP_NAME
public MediaDriver.Context warnIfDirectoryExists(boolean warnIfDirectoryExists)
CommonContext.aeronDirectoryName()
exists?warnIfDirectoryExists
- warn if the CommonContext.aeronDirectoryName()
exists?Configuration.DIR_WARN_IF_EXISTS_PROP_NAME
public boolean dirDeleteOnStart()
CommonContext.aeronDirectoryName()
on startup.Configuration.DIR_DELETE_ON_START_PROP_NAME
public MediaDriver.Context dirDeleteOnStart(boolean dirDeleteOnStart)
CommonContext.aeronDirectoryName()
on startup.dirDeleteOnStart
- Attempt deletion.Configuration.DIR_DELETE_ON_START_PROP_NAME
public boolean dirDeleteOnShutdown()
CommonContext.aeronDirectoryName()
on shutdown.Configuration.DIR_DELETE_ON_SHUTDOWN_PROP_NAME
public MediaDriver.Context dirDeleteOnShutdown(boolean dirDeleteOnShutdown)
CommonContext.aeronDirectoryName()
on shutdown.dirDeleteOnShutdown
- Attempt deletion.Configuration.DIR_DELETE_ON_SHUTDOWN_PROP_NAME
public boolean termBufferSparseFile()
Configuration.TERM_BUFFER_SPARSE_FILE_PROP_NAME
public MediaDriver.Context termBufferSparseFile(boolean termBufferSparseFile)
termBufferSparseFile
- should the term buffers be created with sparse files?Configuration.TERM_BUFFER_SPARSE_FILE_PROP_NAME
public int conductorBufferLength()
RingBuffer
for sending commands to the driver conductor from clients.RingBuffer
for sending commands to the driver conductor from clients.Configuration.CONDUCTOR_BUFFER_LENGTH_PROP_NAME
public MediaDriver.Context conductorBufferLength(int length)
RingBuffer
for sending commands to the driver conductor from clients.length
- of the RingBuffer
for sending commands to the driver conductor from clients.Configuration.CONDUCTOR_BUFFER_LENGTH_PROP_NAME
public int toClientsBufferLength()
BroadcastTransmitter
buffer for sending events to the clients.BroadcastTransmitter
buffer for sending events to the clients.Configuration.TO_CLIENTS_BUFFER_LENGTH_PROP_NAME
public MediaDriver.Context toClientsBufferLength(int length)
BroadcastTransmitter
buffer for sending events to the clients.length
- of the BroadcastTransmitter
buffer for sending events to the clients.Configuration.TO_CLIENTS_BUFFER_LENGTH_PROP_NAME
public int counterValuesBufferLength()
CountersManager
.CountersManager
.Configuration.COUNTERS_VALUES_BUFFER_LENGTH_PROP_NAME
public MediaDriver.Context counterValuesBufferLength(int length)
CountersManager
.length
- of the buffer for storing values by the CountersManager
.Configuration.COUNTERS_VALUES_BUFFER_LENGTH_PROP_NAME
public int errorBufferLength()
DistinctErrorLog
buffer for recording exceptions.DistinctErrorLog
buffer for recording exceptions.Configuration.ERROR_BUFFER_LENGTH_PROP_NAME
public MediaDriver.Context errorBufferLength(int length)
DistinctErrorLog
buffer for recording exceptions.length
- of the DistinctErrorLog
buffer for recording exceptions.Configuration.ERROR_BUFFER_LENGTH_PROP_NAME
public boolean performStorageChecks()
Configuration.PERFORM_STORAGE_CHECKS_PROP_NAME
public MediaDriver.Context performStorageChecks(boolean performStorageChecks)
performStorageChecks
- true if the driver should perform storage checks when allocating files.Configuration.PERFORM_STORAGE_CHECKS_PROP_NAME
public long lowStorageWarningThreshold()
Configuration.LOW_FILE_STORE_WARNING_THRESHOLD_PROP_NAME
public MediaDriver.Context lowStorageWarningThreshold(long lowStorageWarningThreshold)
lowStorageWarningThreshold
- to be set in bytes.Configuration.LOW_FILE_STORE_WARNING_THRESHOLD_PROP_NAME
public int lossReportBufferLength()
Configuration.LOSS_REPORT_BUFFER_LENGTH_PROP_NAME
public MediaDriver.Context lossReportBufferLength(int length)
length
- of the buffer to be used for the loss report.Configuration.LOSS_REPORT_BUFFER_LENGTH_PROP_NAME
public int filePageSize()
Configuration.FILE_PAGE_SIZE_PROP_NAME
public MediaDriver.Context filePageSize(int filePageSize)
filePageSize
- for alignment of file sizes.Configuration.FILE_PAGE_SIZE_PROP_NAME
public long timerIntervalNs()
Configuration.TIMER_INTERVAL_PROP_NAME
public MediaDriver.Context timerIntervalNs(long timerIntervalNs)
timerIntervalNs
- nanoseconds between checks for timers and timeouts.Configuration.TIMER_INTERVAL_PROP_NAME
public long imageLivenessTimeoutNs()
Configuration.IMAGE_LIVENESS_TIMEOUT_PROP_NAME
public MediaDriver.Context imageLivenessTimeoutNs(long timeout)
timeout
- for keeping an image alive for its subscribers to consume it.Configuration.IMAGE_LIVENESS_TIMEOUT_PROP_NAME
public long publicationLingerTimeoutNs()
Configuration.PUBLICATION_LINGER_PROP_NAME
public MediaDriver.Context publicationLingerTimeoutNs(long timeoutNs)
timeoutNs
- for keeping a publication once it is drained.Configuration.PUBLICATION_LINGER_PROP_NAME
public long untetheredWindowLimitTimeoutNs()
Configuration.UNTETHERED_WINDOW_LIMIT_TIMEOUT_PROP_NAME
public MediaDriver.Context untetheredWindowLimitTimeoutNs(long timeoutNs)
timeoutNs
- that an untethered subscription outside the window limit will participate in flow control.Configuration.UNTETHERED_WINDOW_LIMIT_TIMEOUT_PROP_NAME
public long untetheredRestingTimeoutNs()
Configuration.UNTETHERED_RESTING_TIMEOUT_PROP_NAME
public MediaDriver.Context untetheredRestingTimeoutNs(long timeoutNs)
timeoutNs
- that an untethered subscription is resting before being allowed to rejoin a stream.Configuration.UNTETHERED_RESTING_TIMEOUT_PROP_NAME
public long retransmitUnicastDelayNs()
Configuration.RETRANSMIT_UNICAST_DELAY_PROP_NAME
public MediaDriver.Context retransmitUnicastDelayNs(long retransmitUnicastDelayNs)
retransmitUnicastDelayNs
- delay before retransmitting after a NAK.Configuration.RETRANSMIT_UNICAST_DELAY_PROP_NAME
public long retransmitUnicastLingerNs()
Configuration.RETRANSMIT_UNICAST_LINGER_PROP_NAME
public MediaDriver.Context retransmitUnicastLingerNs(long retransmitUnicastLingerNs)
retransmitUnicastLingerNs
- how long to linger after delay on a NAK before responding to another NAK.Configuration.RETRANSMIT_UNICAST_LINGER_PROP_NAME
public long nakUnicastDelayNs()
Configuration.NAK_UNICAST_DELAY_PROP_NAME
public MediaDriver.Context nakUnicastDelayNs(long nakUnicastDelayNs)
nakUnicastDelayNs
- delay before retransmission after an NAK on unicast.Configuration.NAK_UNICAST_DELAY_PROP_NAME
public long nakMulticastMaxBackoffNs()
Configuration.NAK_MULTICAST_MAX_BACKOFF_PROP_NAME
public MediaDriver.Context nakMulticastMaxBackoffNs(long nakMulticastMaxBackoffNs)
nakMulticastMaxBackoffNs
- maximum time to backoff before sending a NAK on multicast.Configuration.NAK_MULTICAST_MAX_BACKOFF_PROP_NAME
public int nakMulticastGroupSize()
Configuration.NAK_MULTICAST_GROUP_SIZE_PROP_NAME
public MediaDriver.Context nakMulticastGroupSize(int nakMulticastGroupSize)
nakMulticastGroupSize
- estimate of the multicast receiver group size on a stream.Configuration.NAK_MULTICAST_GROUP_SIZE_PROP_NAME
public long clientLivenessTimeoutNs()
Configuration.CLIENT_LIVENESS_TIMEOUT_PROP_NAME
public MediaDriver.Context clientLivenessTimeoutNs(long timeoutNs)
timeoutNs
- in nanoseconds after which a client is considered dead if a keep alive is not received.Configuration.CLIENT_LIVENESS_TIMEOUT_PROP_NAME
public long statusMessageTimeoutNs()
Configuration.STATUS_MESSAGE_TIMEOUT_PROP_NAME
public MediaDriver.Context statusMessageTimeoutNs(long statusMessageTimeoutNs)
statusMessageTimeoutNs
- after which a status message will be sent if data is flowing slowly.Configuration.STATUS_MESSAGE_TIMEOUT_PROP_NAME
public long counterFreeToReuseTimeoutNs()
Configuration.COUNTER_FREE_TO_REUSE_TIMEOUT_PROP_NAME
public MediaDriver.Context counterFreeToReuseTimeoutNs(long counterFreeToReuseTimeoutNs)
counterFreeToReuseTimeoutNs
- after which a freed counter may be reused.Configuration.COUNTER_FREE_TO_REUSE_TIMEOUT_PROP_NAME
public long publicationUnblockTimeoutNs()
A publication can become blocked if the client crashes while publishing or if
Publication.tryClaim(int, BufferClaim)
is used without following up by calling
BufferClaim.commit()
or BufferClaim.abort()
.
Configuration.PUBLICATION_UNBLOCK_TIMEOUT_PROP_NAME
public MediaDriver.Context publicationUnblockTimeoutNs(long timeoutNs)
A publication can become blocked if the client crashes while publishing or if
Publication.tryClaim(int, BufferClaim)
is used without following up by calling
BufferClaim.commit()
or BufferClaim.abort()
.
timeoutNs
- in nanoseconds after which a publication will be unblocked.Configuration.PUBLICATION_UNBLOCK_TIMEOUT_PROP_NAME
public long publicationConnectionTimeoutNs()
Configuration.PUBLICATION_CONNECTION_TIMEOUT_PROP_NAME
public MediaDriver.Context publicationConnectionTimeoutNs(long timeoutNs)
timeoutNs
- in nanoseconds after which a publication will be considered not connected.Configuration.PUBLICATION_CONNECTION_TIMEOUT_PROP_NAME
public boolean spiesSimulateConnection()
If true then this will override the min group size of the min and tagged flow control strategies.
Configuration.SPIES_SIMULATE_CONNECTION_PROP_NAME
public MediaDriver.Context spiesSimulateConnection(boolean spiesSimulateConnection)
If true then this will override the min group size of the min and tagged flow control strategies.
spiesSimulateConnection
- true if a spy subscription simulates a connection to a network publication.Configuration.SPIES_SIMULATE_CONNECTION_PROP_NAME
public boolean reliableStream()
The default can be overridden with a channel param.
Configuration.RELIABLE_STREAM_PROP_NAME
,
CommonContext.RELIABLE_STREAM_PARAM_NAME
public MediaDriver.Context reliableStream(boolean reliableStream)
The default can be overridden with a channel param.
reliableStream
- true if a stream should NAK on loss otherwise gap fill.Configuration.RELIABLE_STREAM_PROP_NAME
,
CommonContext.RELIABLE_STREAM_PARAM_NAME
public boolean tetherSubscriptions()
The default can be overridden with a channel param.
Configuration.TETHER_SUBSCRIPTIONS_PROP_NAME
,
CommonContext.TETHER_PARAM_NAME
public MediaDriver.Context tetherSubscriptions(boolean tetherSubscription)
The default can be overridden with a channel param.
tetherSubscription
- true if subscriptions should have a tether for local flow control.Configuration.TETHER_SUBSCRIPTIONS_PROP_NAME
,
CommonContext.TETHER_PARAM_NAME
public CommonContext.InferableBoolean receiverGroupConsideration()
The default can be overridden with a channel param.
Configuration.GROUP_RECEIVER_CONSIDERATION_PROP_NAME
,
CommonContext.GROUP_PARAM_NAME
public MediaDriver.Context receiverGroupConsideration(CommonContext.InferableBoolean receiverGroupConsideration)
The default can be overridden with a channel param.
receiverGroupConsideration
- true if subscriptions should be considered a group member,
false if not, or infer from endpoint.Configuration.GROUP_RECEIVER_CONSIDERATION_PROP_NAME
,
CommonContext.GROUP_PARAM_NAME
public boolean rejoinStream()
The default can be overridden with a channel param.
Configuration.REJOIN_STREAM_PROP_NAME
,
CommonContext.REJOIN_PARAM_NAME
public MediaDriver.Context rejoinStream(boolean rejoinStream)
The default can be overridden with a channel param.
rejoinStream
- true if subscription will rejoin after cooldown or false if not.Configuration.REJOIN_STREAM_PROP_NAME
,
CommonContext.REJOIN_PARAM_NAME
public int publicationTermBufferLength()
Configuration.TERM_BUFFER_LENGTH_PROP_NAME
public MediaDriver.Context publicationTermBufferLength(int termBufferLength)
This can be overridden on publication by using channel URI params.
termBufferLength
- default length for a term buffer on a network publication.Configuration.TERM_BUFFER_LENGTH_PROP_NAME
public int ipcTermBufferLength()
Configuration.IPC_TERM_BUFFER_LENGTH_PROP_NAME
public MediaDriver.Context ipcTermBufferLength(int termBufferLength)
This can be overridden on publication by using channel URI params.
termBufferLength
- default length for a term buffer on an IPC publication.Configuration.IPC_TERM_BUFFER_LENGTH_PROP_NAME
public int publicationTermWindowLength()
Configuration.PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
public MediaDriver.Context publicationTermWindowLength(int termWindowLength)
termWindowLength
- default length for a term buffer window on a network publication.Configuration.PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
public int ipcPublicationTermWindowLength()
Configuration.IPC_PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
public MediaDriver.Context ipcPublicationTermWindowLength(int termWindowLength)
termWindowLength
- default length for a term buffer window on an IPC publication.Configuration.IPC_PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
public int initialWindowLength()
Configuration.SOCKET_RCVBUF_LENGTH_PROP_NAME
. This needs to be configured for throughput respecting
BDP.Configuration.INITIAL_WINDOW_LENGTH_PROP_NAME
public MediaDriver.Context initialWindowLength(int initialWindowLength)
Configuration.SOCKET_RCVBUF_LENGTH_PROP_NAME
. This needs to be configured for throughput respecting
BDP.initialWindowLength
- The initial window for in flight data on a connectionConfiguration.INITIAL_WINDOW_LENGTH_PROP_NAME
public int socketSndbufLength()
Configuration.SOCKET_SNDBUF_LENGTH_PROP_NAME
public MediaDriver.Context socketSndbufLength(int socketSndbufLength)
socketSndbufLength
- which is the OS SO_SNDBUF.Configuration.SOCKET_SNDBUF_LENGTH_PROP_NAME
public int socketRcvbufLength()
Configuration.SOCKET_RCVBUF_LENGTH_PROP_NAME
public MediaDriver.Context socketRcvbufLength(int socketRcvbufLength)
socketRcvbufLength
- which is the OS SO_RCVBUF.Configuration.SOCKET_RCVBUF_LENGTH_PROP_NAME
public int socketMulticastTtl()
Configuration.SOCKET_MULTICAST_TTL_PROP_NAME
public MediaDriver.Context socketMulticastTtl(int ttl)
ttl
- value to be used for multicast sockets.Configuration.SOCKET_MULTICAST_TTL_PROP_NAME
public int mtuLength()
Larger MTUs reduce system call overhead at the expense of possible increase in loss which will need to be recovered. If this is greater than the network MTU for UDP then the packet will be fragmented and can amplify the impact of loss.
Configuration.MTU_LENGTH_PROP_NAME
public MediaDriver.Context mtuLength(int mtuLength)
Larger MTUs reduce system call overhead at the expense of possible increase in loss which will need to be recovered. If this is greater than the network MTU for UDP then the packet will be fragmented and can amplify the impact of loss.
mtuLength
- in bytes for datagrams sent to the network.Configuration.MTU_LENGTH_PROP_NAME
public int ipcMtuLength()
Larger MTUs reduce fragmentation. If an IPC stream is recorded to be later sent over the network then a large MTU may be an issue.
Configuration.IPC_MTU_LENGTH_PROP_NAME
public MediaDriver.Context ipcMtuLength(int ipcMtuLength)
Larger MTUs reduce fragmentation. If an IPC stream is recorded to be later sent over the network then a large MTU may be an issue.
ipcMtuLength
- in bytes for message fragments.Configuration.IPC_MTU_LENGTH_PROP_NAME
public EpochClock epochClock()
EpochClock
as a source of time in milliseconds for wall clock time.EpochClock
as a source of time in milliseconds for wall clock time.public MediaDriver.Context epochClock(EpochClock clock)
EpochClock
as a source of time in milliseconds for wall clock time.clock
- to be used.public NanoClock nanoClock()
NanoClock
as a source of time in nanoseconds for measuring duration.NanoClock
as a source of time in nanoseconds for measuring duration.public MediaDriver.Context nanoClock(NanoClock clock)
NanoClock
as a source of time in nanoseconds for measuring duration.clock
- to be used.public CachedEpochClock cachedEpochClock()
CachedEpochClock
as a source of time in milliseconds for wall clock time.CachedEpochClock
as a source of time in milliseconds for wall clock time.public MediaDriver.Context cachedEpochClock(CachedEpochClock clock)
CachedEpochClock
as a source of time in milliseconds for wall clock time.clock
- to be used.public CachedNanoClock cachedNanoClock()
CachedNanoClock
as a source of time in nanoseconds for measuring duration. This is updated
once per work cycle of the DriverConductor
.CachedNanoClock
as a source of time in nanoseconds for measuring duration.public MediaDriver.Context cachedNanoClock(CachedNanoClock clock)
CachedNanoClock
as a source of time in nanoseconds for measuring duration for the
DriverConductor
.clock
- to be used.public CachedNanoClock senderCachedNanoClock()
CachedNanoClock
as a source of time in nanoseconds for measuring duration. This is updated
once per work cycle of the Sender
.CachedNanoClock
as a source of time in nanoseconds for measuring duration.public MediaDriver.Context senderCachedNanoClock(CachedNanoClock clock)
CachedNanoClock
as a source of time in nanoseconds for measuring duration for the
Sender
.clock
- to be used.public CachedNanoClock receiverCachedNanoClock()
CachedNanoClock
as a source of time in nanoseconds for measuring duration. This is updated
once per work cycle of the Receiver
.CachedNanoClock
as a source of time in nanoseconds for measuring duration.public MediaDriver.Context receiverCachedNanoClock(CachedNanoClock clock)
CachedNanoClock
as a source of time in nanoseconds for measuring duration for the
Receiver
.clock
- to be used.public ThreadingMode threadingMode()
ThreadingMode
that should be used for the driver.ThreadingMode
that should be used for the driver.Configuration.THREADING_MODE_PROP_NAME
public MediaDriver.Context threadingMode(ThreadingMode threadingMode)
ThreadingMode
that should be used for the driver.threadingMode
- that should be used for the driver.Configuration.THREADING_MODE_PROP_NAME
public ThreadFactory senderThreadFactory()
ThreadFactory
to be used for creating agent thread for the Sender
when running in
ThreadingMode.DEDICATED
.ThreadFactory
to be used for creating agent thread for the Sender
.public MediaDriver.Context senderThreadFactory(ThreadFactory factory)
ThreadFactory
to be used for creating agent thread for the Sender
when running in
ThreadingMode.DEDICATED
.
If none is provided then this will default a simple new operation.
factory
- to be used for creating agent thread for the Sender
.public ThreadFactory receiverThreadFactory()
ThreadFactory
to be used for creating agent thread for the Receiver
when running in
ThreadingMode.DEDICATED
.ThreadFactory
to be used for creating agent thread for the Receiver
.public MediaDriver.Context receiverThreadFactory(ThreadFactory factory)
ThreadFactory
to be used for creating agent thread for the Receiver
when running in
ThreadingMode.DEDICATED
.
If none is provided then this will default a simple new operation.
factory
- to be used for creating agent thread for the Receiver
.public ThreadFactory conductorThreadFactory()
ThreadFactory
to be used for creating agent thread for the DriverConductor
when running in
ThreadingMode.DEDICATED
or ThreadingMode.SHARED_NETWORK
.ThreadFactory
to be used for creating agent thread for the DriverConductor
.public MediaDriver.Context conductorThreadFactory(ThreadFactory factory)
ThreadFactory
to be used for creating agent thread for the DriverConductor
when running in
ThreadingMode.DEDICATED
or ThreadingMode.SHARED_NETWORK
.
If none is provided then this will default a simple new operation.
factory
- to be used for creating agent thread for the DriverConductor
.public ThreadFactory sharedThreadFactory()
ThreadFactory
to be used for creating agent thread for the all driver agents as a
CompositeAgent
when running in ThreadingMode.SHARED
.ThreadFactory
to be used for creating agent thread for the CompositeAgent
.public MediaDriver.Context sharedThreadFactory(ThreadFactory factory)
ThreadFactory
to be used for creating agent thread for the all driver agents as a
CompositeAgent
when running in ThreadingMode.SHARED
.
If none is provided then this will default a simple new operation.
factory
- to be used for creating agent thread for the CompositeAgent
.public ThreadFactory sharedNetworkThreadFactory()
ThreadFactory
to be used for creating agent thread for the sender and receiver agents as a
CompositeAgent
when running in ThreadingMode.SHARED_NETWORK
.ThreadFactory
to be used for creating agent thread for the CompositeAgent
.public MediaDriver.Context sharedNetworkThreadFactory(ThreadFactory factory)
ThreadFactory
to be used for creating agent thread for the sender and receiver agents as a
CompositeAgent
when running in ThreadingMode.SHARED_NETWORK
.
If none is provided then this will default a simple new operation.
factory
- to be used for creating agent thread for the CompositeAgent
.public IdleStrategy senderIdleStrategy()
IdleStrategy
to be used by the Sender
when in ThreadingMode.DEDICATED
.Configuration.SENDER_IDLE_STRATEGY_PROP_NAME
public MediaDriver.Context senderIdleStrategy(IdleStrategy strategy)
strategy
- to be used by the Sender
when in ThreadingMode.DEDICATED
.Configuration.SENDER_IDLE_STRATEGY_PROP_NAME
public IdleStrategy receiverIdleStrategy()
IdleStrategy
used by the Receiver
when in ThreadingMode.DEDICATED
.Configuration.RECEIVER_IDLE_STRATEGY_PROP_NAME
public MediaDriver.Context receiverIdleStrategy(IdleStrategy strategy)
strategy
- to be used by the Receiver
when in ThreadingMode.DEDICATED
.Configuration.RECEIVER_IDLE_STRATEGY_PROP_NAME
public IdleStrategy conductorIdleStrategy()
IdleStrategy
to be used by the DriverConductor
when in ThreadingMode.DEDICATED
or ThreadingMode.SHARED_NETWORK
.IdleStrategy
used by the DriverConductor
Configuration.CONDUCTOR_IDLE_STRATEGY_PROP_NAME
public MediaDriver.Context conductorIdleStrategy(IdleStrategy strategy)
IdleStrategy
to be used by the DriverConductor
when in ThreadingMode.DEDICATED
or ThreadingMode.SHARED_NETWORK
.strategy
- to be used by the DriverConductor
.Configuration.CONDUCTOR_IDLE_STRATEGY_PROP_NAME
public IdleStrategy sharedNetworkIdleStrategy()
IdleStrategy
used by the Sender
and Receiver
.Configuration.SHARED_NETWORK_IDLE_STRATEGY_PROP_NAME
public MediaDriver.Context sharedNetworkIdleStrategy(IdleStrategy strategy)
strategy
- to be used by the Sender
and Receiver
.Configuration.SHARED_NETWORK_IDLE_STRATEGY_PROP_NAME
public IdleStrategy sharedIdleStrategy()
IdleStrategy
to be used by the Sender
, Receiver
and DriverConductor
agents when in ThreadingMode.SHARED
.IdleStrategy
used by the Sender
, Receiver
and DriverConductor
.Configuration.SHARED_IDLE_STRATEGY_PROP_NAME
public MediaDriver.Context sharedIdleStrategy(IdleStrategy strategy)
IdleStrategy
to be used by the Sender
, Receiver
and DriverConductor
agents when in ThreadingMode.SHARED
.strategy
- to be used by the Sender
, Receiver
and DriverConductor
.Configuration.SHARED_IDLE_STRATEGY_PROP_NAME
public SendChannelEndpointSupplier sendChannelEndpointSupplier()
SendChannelEndpoint
subclasses for specialising interactions
with the send side of a network channel.SendChannelEndpoint
subclasses.Configuration.SEND_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME
public MediaDriver.Context sendChannelEndpointSupplier(SendChannelEndpointSupplier supplier)
SendChannelEndpoint
subclasses for specialising interactions
with the send side of a network channel.supplier
- of dynamically created SendChannelEndpoint
subclasses.Configuration.SEND_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME
public ReceiveChannelEndpointSupplier receiveChannelEndpointSupplier()
ReceiveChannelEndpoint
subclasses for specialising interactions
with the receive side of a network channel.ReceiveChannelEndpoint
subclasses.Configuration.RECEIVE_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME
public MediaDriver.Context receiveChannelEndpointSupplier(ReceiveChannelEndpointSupplier supplier)
ReceiveChannelEndpoint
subclasses for specialising interactions
with the receive side of a network channel.supplier
- of dynamically created ReceiveChannelEndpoint
subclasses.Configuration.RECEIVE_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME
public ReceiveChannelEndpointThreadLocals receiveChannelEndpointThreadLocals()
ReceiveChannelEndpoint
.ReceiveChannelEndpoint
.public MediaDriver.Context receiveChannelEndpointThreadLocals(ReceiveChannelEndpointThreadLocals threadLocals)
ReceiveChannelEndpoint
.threadLocals
- for use by subclasses of ReceiveChannelEndpoint
.public MutableDirectBuffer tempBuffer()
public MediaDriver.Context tempBuffer(MutableDirectBuffer tempBuffer)
tempBuffer
- to be used to avoid allocation.public FlowControlSupplier unicastFlowControlSupplier()
FlowControl
strategies for unicast connections.FlowControl
strategies for unicast connections.Configuration.UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
public MediaDriver.Context unicastFlowControlSupplier(FlowControlSupplier flowControlSupplier)
FlowControl
strategies for unicast connections.flowControlSupplier
- of FlowControl
strategies for unicast connections.Configuration.UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
public FlowControlSupplier multicastFlowControlSupplier()
FlowControl
strategies for multicast connections.FlowControl
strategies for multicast connections.Configuration.MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
public MediaDriver.Context multicastFlowControlSupplier(FlowControlSupplier flowControlSupplier)
FlowControl
strategies for multicast connections.flowControlSupplier
- of FlowControl
strategies for multicast connections.Configuration.MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
public long flowControlReceiverTimeoutNs()
Configuration.FLOW_CONTROL_RECEIVER_TIMEOUT_PROP_NAME
public MediaDriver.Context flowControlReceiverTimeoutNs(long timeoutNs)
timeoutNs
- in ns.Configuration.FLOW_CONTROL_RECEIVER_TIMEOUT_PROP_NAME
@Deprecated public byte[] applicationSpecificFeedback()
TaggedMulticastFlowControl
strategy which is added to Status Messages (SMs).
Replaced by receiverGroupTag()
.
Configuration.SM_APPLICATION_SPECIFIC_FEEDBACK_PROP_NAME
@Deprecated public MediaDriver.Context applicationSpecificFeedback(byte[] asfBytes)
TaggedMulticastFlowControl
strategy which is added to Status Messages (SMs).
Replaced by receiverGroupTag(Long)
.
asfBytes
- for identifying a receiver group.Configuration.SM_APPLICATION_SPECIFIC_FEEDBACK_PROP_NAME
public CongestionControlSupplier congestionControlSupplier()
CongestionControl
strategies for individual connections.CongestionControl
strategies for individual connections.Configuration.CONGESTION_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
public MediaDriver.Context congestControlSupplier(CongestionControlSupplier supplier)
CongestionControl
strategies for individual connections.supplier
- of dynamically created CongestionControl
strategies for individual connections.Configuration.CONGESTION_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
public ErrorHandler errorHandler()
ErrorHandler
to be used for reporting errors during Agent
s operations.ErrorHandler
to be used for reporting errors during Agent
s operations.public MediaDriver.Context errorHandler(ErrorHandler errorHandler)
ErrorHandler
to be used for reporting errors during Agent
s operations.
The default ErrorHandler
will delegate to the errorLog()
and output to System.err
if the log is full.
Note: ErrorHandler
should be thread safe.
errorHandler
- to be used for reporting errors during Agent
s operations.public DistinctErrorLog errorLog()
public MediaDriver.Context errorLog(DistinctErrorLog errorLog)
errorLog
- to which exceptions are recorded.public boolean useConcurrentCountersManager()
ConcurrentCountersManager
be used to allow for cross thread usage.ConcurrentCountersManager
should be used otherwise false.public MediaDriver.Context useConcurrentCountersManager(boolean useConcurrentCountersManager)
ConcurrentCountersManager
be used to allow for cross thread usage.
The default is to use a normal CountersManager
from only the DriverConductor
. If the
MediaDriver
is to be composed into another services that allocates counters then this should be
concurrent.
useConcurrentCountersManager
- true if a ConcurrentCountersManager
should be used.public CountersManager countersManager()
CountersManager
that has been concluded for this context.CountersManager
that has been concluded for this context.public MediaDriver.Context countersManager(CountersManager countersManager)
CountersManager
to override the one that would have been concluded.countersManager
- to override the one that would have been concluded.public SystemCounters systemCounters()
SystemCounters
for the driver for recording aggregate events of system status.SystemCounters
for the driver for recording aggregate events of system status.public MediaDriver.Context systemCounters(SystemCounters systemCounters)
SystemCounters
for the driver for recording aggregate events of system status.
The default should only be overridden for testing.
systemCounters
- for the driver for recording aggregate events of system status.public int publicationReservedSessionIdLow()
publicationReservedSessionIdHigh()
,
Configuration.PUBLICATION_RESERVED_SESSION_ID_LOW_PROP_NAME
public MediaDriver.Context publicationReservedSessionIdLow(int sessionId)
sessionId
- for low end of the publication reserved session id range which will not be automatically
assigned.publicationReservedSessionIdHigh(int)
,
Configuration.PUBLICATION_RESERVED_SESSION_ID_LOW_PROP_NAME
public int publicationReservedSessionIdHigh()
publicationReservedSessionIdLow()
,
Configuration.PUBLICATION_RESERVED_SESSION_ID_HIGH_PROP_NAME
public MediaDriver.Context publicationReservedSessionIdHigh(int sessionId)
sessionId
- for high end of the publication reserved session id range which will not be automatically
assigned.publicationReservedSessionIdLow(int)
,
Configuration.PUBLICATION_RESERVED_SESSION_ID_HIGH_PROP_NAME
public FeedbackDelayGenerator retransmitUnicastDelayGenerator()
FeedbackDelayGenerator
for controlling the delay before sending a retransmit frame.FeedbackDelayGenerator
for controlling the delay before sending a retransmit frame.Configuration.RETRANSMIT_UNICAST_DELAY_PROP_NAME
public MediaDriver.Context retransmitUnicastDelayGenerator(FeedbackDelayGenerator feedbackDelayGenerator)
FeedbackDelayGenerator
for controlling the delay before sending a retransmit frame.feedbackDelayGenerator
- for controlling the delay before sending a retransmit frame.Configuration.RETRANSMIT_UNICAST_DELAY_PROP_NAME
public FeedbackDelayGenerator retransmitUnicastLingerGenerator()
FeedbackDelayGenerator
for controlling the linger after a retransmit.FeedbackDelayGenerator
for controlling the linger after a retransmit.Configuration.RETRANSMIT_UNICAST_LINGER_PROP_NAME
public MediaDriver.Context retransmitUnicastLingerGenerator(FeedbackDelayGenerator feedbackDelayGenerator)
FeedbackDelayGenerator
for controlling the linger after a retransmit frame.feedbackDelayGenerator
- for controlling the linger after a retransmit.Configuration.RETRANSMIT_UNICAST_LINGER_PROP_NAME
public FeedbackDelayGenerator unicastFeedbackDelayGenerator()
FeedbackDelayGenerator
for controlling the delay of sending NAK feedback on unicast.FeedbackDelayGenerator
for controlling the delay of sending NAK feedback.Configuration.NAK_UNICAST_DELAY_PROP_NAME
public MediaDriver.Context unicastFeedbackDelayGenerator(FeedbackDelayGenerator feedbackDelayGenerator)
FeedbackDelayGenerator
for controlling the delay of sending NAK feedback on unicast.feedbackDelayGenerator
- for controlling the delay of sending NAK feedback.Configuration.NAK_UNICAST_DELAY_PROP_NAME
public FeedbackDelayGenerator multicastFeedbackDelayGenerator()
FeedbackDelayGenerator
for controlling the delay of sending NAK feedback on multicast.FeedbackDelayGenerator
for controlling the delay of sending NAK feedback.Configuration.NAK_MULTICAST_MAX_BACKOFF_PROP_NAME
,
Configuration.NAK_MULTICAST_GROUP_SIZE_PROP_NAME
public MediaDriver.Context multicastFeedbackDelayGenerator(FeedbackDelayGenerator feedbackDelayGenerator)
FeedbackDelayGenerator
for controlling the delay of sending NAK feedback on multicast.feedbackDelayGenerator
- for controlling the delay of sending NAK feedback.Configuration.NAK_MULTICAST_MAX_BACKOFF_PROP_NAME
,
Configuration.NAK_MULTICAST_GROUP_SIZE_PROP_NAME
public MediaDriver.Context terminationHook(Runnable terminationHook)
Runnable
that is called when the MediaDriver
processes a valid termination request.terminationHook
- that can be used to terminate a driver.public Runnable terminationHook()
Runnable
that is called when the MediaDriver
processes a valid termination request.
The default action is nothing.
Runnable
that can be used to terminate a consensus module.public MediaDriver.Context terminationValidator(TerminationValidator validator)
TerminationValidator
to be used to validate termination requests.validator
- to validate termination requests.public TerminationValidator terminationValidator()
TerminationValidator
to be used to validate termination requests.TerminationValidator
to validate termination requests.public int sendToStatusMessagePollRatio()
public MediaDriver.Context sendToStatusMessagePollRatio(int ratio)
ratio
- to use.public Long receiverGroupTag()
Configuration.RECEIVER_GROUP_TAG_PROP_NAME
public MediaDriver.Context receiverGroupTag(Long groupTag)
groupTag
- value to sent in Status Messages from the receiver or null if not set.Configuration.RECEIVER_GROUP_TAG_PROP_NAME
public long flowControlGroupTag()
Configuration.FLOW_CONTROL_GROUP_TAG_PROP_NAME
public MediaDriver.Context flowControlGroupTag(long groupTag)
groupTag
- value to use by default by the tagged flow control strategy.Configuration.FLOW_CONTROL_GROUP_TAG_PROP_NAME
public int flowControlGroupMinSize()
Configuration.FLOW_CONTROL_GROUP_MIN_SIZE_PROP_NAME
public MediaDriver.Context flowControlGroupMinSize(int groupSize)
groupSize
- minimum required group size used by the tagged flow control strategy.Configuration.FLOW_CONTROL_GROUP_MIN_SIZE_PROP_NAME
public NameResolver nameResolver()
NameResolver
to use for resolving endpoints and control names.NameResolver
to use for resolving endpoints and control names.public MediaDriver.Context nameResolver(NameResolver nameResolver)
NameResolver
to use for resolving endpoints and control names.nameResolver
- to use for resolving endpoints and control names.public String resolverName()
MediaDriver
for name resolver purposes.MediaDriver
.Configuration.RESOLVER_NAME_PROP_NAME
public MediaDriver.Context resolverName(String resolverName)
MediaDriver
for name resolver purposes.resolverName
- for the driver.Configuration.RESOLVER_NAME_PROP_NAME
public String resolverInterface()
MediaDriver
for name resolver purposes.
The format is hostname:port and follows the URI format for the interface parameter. If set to null,
then the name resolver will not be used.MediaDriver
.Configuration.RESOLVER_INTERFACE_PROP_NAME
,
CommonContext.INTERFACE_PARAM_NAME
public MediaDriver.Context resolverInterface(String resolverInterface)
MediaDriver
for name resolver purposes.
The format is hostname:port and follows the URI format for the interface parameter. If set to null,
then the name resolver will not be used.resolverInterface
- to use for the name resolver.Configuration.RESOLVER_INTERFACE_PROP_NAME
,
CommonContext.INTERFACE_PARAM_NAME
public String resolverBootstrapNeighbor()
MediaDriver
for name resolver purposes.
The format is comma separated list of hostname:port
pairs. and follows the URI format for the
endpoint parameter.MediaDriver
.Configuration.RESOLVER_BOOTSTRAP_NEIGHBOR_PROP_NAME
,
CommonContext.ENDPOINT_PARAM_NAME
public MediaDriver.Context resolverBootstrapNeighbor(String resolverBootstrapNeighbor)
MediaDriver
for name resolver purposes.
The format is hostname:port and follows the URI format for the endpoint parameter.resolverBootstrapNeighbor
- to use for the name resolver.Configuration.RESOLVER_BOOTSTRAP_NEIGHBOR_PROP_NAME
,
CommonContext.ENDPOINT_PARAM_NAME
public long reResolutionCheckIntervalNs()
Configuration.RE_RESOLUTION_CHECK_INTERVAL_PROP_NAME
,
Configuration.RE_RESOLUTION_CHECK_INTERVAL_DEFAULT_NS
public MediaDriver.Context reResolutionCheckIntervalNs(long reResolutionCheckIntervalNs)
reResolutionCheckIntervalNs
- to use for checkConfiguration.RE_RESOLUTION_CHECK_INTERVAL_PROP_NAME
,
Configuration.RE_RESOLUTION_CHECK_INTERVAL_DEFAULT_NS
public MediaDriver.Context conductorCycleThresholdNs(long thresholdNs)
SystemCounterDescriptor.CONDUCTOR_CYCLE_TIME_THRESHOLD_EXCEEDED
counter.thresholdNs
- value in nanosecondsConfiguration.CONDUCTOR_CYCLE_THRESHOLD_PROP_NAME
,
Configuration.CONDUCTOR_CYCLE_THRESHOLD_DEFAULT_NS
public long conductorCycleThresholdNs()
SystemCounterDescriptor.CONDUCTOR_CYCLE_TIME_THRESHOLD_EXCEEDED
counter.public EpochNanoClock channelReceiveTimestampClock()
public EpochNanoClock channelSendTimestampClock()
Copyright © 2014-2022 Real Logic Limited. All Rights Reserved.