Class ProcessingContext
- java.lang.Object
-
- com.scaleoutsoftware.digitaltwin.core.ProcessingContext
-
- All Implemented Interfaces:
java.io.Serializable
public abstract class ProcessingContext extends java.lang.Object implements java.io.SerializableContext object that allows the user to send a message to a DataSource.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ProcessingContext()Default constructor.
-
Method Summary
Modifier and Type Method Description abstract java.util.DategetCurrentTime()Retrieves the current time.abstract java.lang.StringgetDataSourceId()Retrieve the unique Identifier for a DataSource (matches the Device/Datasource/Real-time twin ID)abstract java.lang.StringgetDigitalTwinModel()Retrieve the model for a DigitalTwin (matches the model of a Device/Datasource/real-time twin)abstract PersistenceProvidergetPersistenceProvider()Returns the configured persistence provider or null if no persistence provider configuration can be found.abstract SharedDatagetSharedGlobalData()Retrieve aSharedDataaccessor for globally shared data.abstract SharedDatagetSharedModelData()Retrieve aSharedDataaccessor for this model's shared data.abstract SimulationControllergetSimulationController()Retrieve the runningSimulationControlleror null if no simulation is running.abstract voidlogMessage(java.util.logging.Level severity, java.lang.String message)Logs a message to the real-time digital twin cloud service.abstract SendingResultsendAlert(java.lang.String alertingProviderName, AlertMessage alert)This method sends an alert message to supported systems.abstract SendingResultsendToDataSource(byte[] payload)Sends a message to a data source.abstract SendingResultsendToDataSource(java.lang.Object jsonSerializableMessage)Sends a message to a data source.abstract SendingResultsendToDataSource(java.util.List<java.lang.Object> jsonSerializableMessages)Sends a list of messages to a data source.abstract SendingResultsendToDigitalTwin(java.lang.String model, java.lang.String id, byte[] payload)This method sends a serialized JSON message to a real-time digital twinabstract SendingResultsendToDigitalTwin(java.lang.String model, java.lang.String id, java.lang.Object jsonSerializableMessage)This method sends a serialized JSON message to a real-time digital twinabstract SendingResultsendToDigitalTwin(java.lang.String model, java.lang.String id, java.lang.String payload)This method sends a JSON message to a real-time digital twinabstract SendingResultsendToDigitalTwin(java.lang.String model, java.lang.String id, java.util.List<byte[]> payload)This method sends a list of serialized JSON message to a real-time digital twinabstract <T extends DigitalTwinBase>
TimerActionResultstartTimer(java.lang.String timerName, java.time.Duration interval, TimerType timerType, TimerHandler<T> timerHandler)Starts a new timer for the digital twinabstract TimerActionResultstopTimer(java.lang.String timerName)Stops the specified timer.
-
-
-
Method Detail
-
sendToDataSource
public abstract SendingResult sendToDataSource(byte[] payload)
Sends a message to a data source. This will route messages through the connector back to the data source.
if the datasource is simulation instance, then the message will be sent to the simulation model's implementation of the
MessageProcessor.- Parameters:
payload- the message (as a serialized JSON string)- Returns:
- the sending result
-
sendToDataSource
public abstract SendingResult sendToDataSource(java.lang.Object jsonSerializableMessage)
Sends a message to a data source. This will route messages through the connector back to the data source.
if the datasource is simulation instance, then the message will be sent to the simulation model's implementation of the
MessageProcessor.- Parameters:
jsonSerializableMessage- a JSON serializable message.- Returns:
- the sending result
-
sendToDataSource
public abstract SendingResult sendToDataSource(java.util.List<java.lang.Object> jsonSerializableMessages)
Sends a list of messages to a data source. This will route messages through the connector back to the data source.
if the datasource is simulation instance, then the message will be sent to the simulation model's implementation of the
MessageProcessor.processMessages(ProcessingContext, DigitalTwinBase, Iterable).- Parameters:
jsonSerializableMessages- a list of JSON serializable messages.- Returns:
- the sending result
-
sendToDigitalTwin
public abstract SendingResult sendToDigitalTwin(java.lang.String model, java.lang.String id, byte[] payload)
This method sends a serialized JSON message to a real-time digital twin
Note, the message contents must be serialized so that the registered message type of the digital twin model will be sufficient to deserialize the message.
- Parameters:
model- the model of the digital twinid- the id of the digital twinpayload- the serialized JSON message- Returns:
- the sending result
-
sendToDigitalTwin
public abstract SendingResult sendToDigitalTwin(java.lang.String model, java.lang.String id, java.lang.Object jsonSerializableMessage)
This method sends a serialized JSON message to a real-time digital twin
Note, the message contents must be serialized so that the registered message type of the digital twin model will be sufficient to deserialize the message.
- Parameters:
model- the model of the digital twinid- the id of the digital twinjsonSerializableMessage- a JSON serializable message object- Returns:
- the sending result
-
sendToDigitalTwin
public abstract SendingResult sendToDigitalTwin(java.lang.String model, java.lang.String id, java.lang.String payload)
This method sends a JSON message to a real-time digital twin
Note, the message contents must be serialized so that the registered message type of the digital twin model will be sufficient to deserialize the message.
- Parameters:
model- the model of the digital twinid- the id of the digital twinpayload- the JSON message- Returns:
- the sending result
-
sendToDigitalTwin
public abstract SendingResult sendToDigitalTwin(java.lang.String model, java.lang.String id, java.util.List<byte[]> payload)
This method sends a list of serialized JSON message to a real-time digital twin
Note, the message contents must be serialized so that the registered message type of the digital twin model will be sufficient to deserialize the message.
- Parameters:
model- the model of the digital twinid- the id of the digital twinpayload- the JSON message- Returns:
- the sending result
-
sendAlert
public abstract SendingResult sendAlert(java.lang.String alertingProviderName, AlertMessage alert)
This method sends an alert message to supported systems.
When a model is deployed, an optional alerting provider configuration can be supplied. The provider name corresponds to the name of the configured alerting provider. For example, if an alerting provider configuration is called "SREPod1", then the processing context will send an alert message to the alerting provider configured with the name "SREPod1".
If the message cannot be sent then
SendingResult.NotHandledwill be returned. If the message is sent and in process of sending thenSendingResult.Enqueuedwill be returned. Once the message is successfully sent then the returned enum will be changed toSendingResult.Handled.- Parameters:
alertingProviderName- the alerting provider name. Note, must match a valid configuration.alert- the alert message.- Returns:
- the sending result.
-
getPersistenceProvider
public abstract PersistenceProvider getPersistenceProvider()
Returns the configured persistence provider or null if no persistence provider configuration can be found.- Returns:
- a PersistenceProvider .
-
getDataSourceId
public abstract java.lang.String getDataSourceId()
Retrieve the unique Identifier for a DataSource (matches the Device/Datasource/Real-time twin ID)- Returns:
- the digital twin id
-
getDigitalTwinModel
public abstract java.lang.String getDigitalTwinModel()
Retrieve the model for a DigitalTwin (matches the model of a Device/Datasource/real-time twin)- Returns:
- the digital twin model
-
logMessage
public abstract void logMessage(java.util.logging.Level severity, java.lang.String message)Logs a message to the real-time digital twin cloud service. Note: the only supported severity levels are: INFO, WARN, and SEVERE- Parameters:
severity- the severity of the log messagemessage- the message to log
-
startTimer
public abstract <T extends DigitalTwinBase> TimerActionResult startTimer(java.lang.String timerName, java.time.Duration interval, TimerType timerType, TimerHandler<T> timerHandler)
Starts a new timer for the digital twin- Type Parameters:
T- the type of the digital twin- Parameters:
timerName- the timer nameinterval- the timer intervaltimerType- the timer typetimerHandler- the time handler callback- Returns:
- returns
TimerActionResult.Successif the timer was started,TimerActionResult.FailedTooManyTimersif too many timers exist, orTimerActionResult.FailedInternalErrorif an unexpected error occurs.
-
stopTimer
public abstract TimerActionResult stopTimer(java.lang.String timerName)
Stops the specified timer.- Parameters:
timerName- the timer name.- Returns:
- returns
TimerActionResult.Successif the timer was stopped,TimerActionResult.FailedNoSuchTimerif no timer exists with that name, orTimerActionResult.FailedInternalErrorif an unexpected error occurs.
-
getCurrentTime
public abstract java.util.Date getCurrentTime()
Retrieves the current time. If the model (simulation or real-time) is running inside of a simulation then the simulation time will be returned.- Returns:
- The current time (real time, or simulation if running under simulation).
-
getSimulationController
public abstract SimulationController getSimulationController()
Retrieve the runningSimulationControlleror null if no simulation is running.- Returns:
- the
SimulationControlleror null if no simulation is running.
-
getSharedModelData
public abstract SharedData getSharedModelData()
Retrieve aSharedDataaccessor for this model's shared data.- Returns:
- a
SharedDatainstance.
-
getSharedGlobalData
public abstract SharedData getSharedGlobalData()
Retrieve aSharedDataaccessor for globally shared data.- Returns:
- a
SharedDatainstance.
-
-