Class Sink<S extends State>
- java.lang.Object
-
- io.siddhi.core.stream.output.sink.Sink<S>
-
- Type Parameters:
S- current state of the Sink
- All Implemented Interfaces:
SinkListener
- Direct Known Subclasses:
DistributedTransport,InMemorySink,LogSink
public abstract class Sink<S extends State> extends Object implements SinkListener
This is a Sink type. these let users to publish events according to some type. this type can either be local, jms or ws (or any custom extension)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSink.OnErrorActionDifferent Type of On Error Actions
-
Field Summary
Fields Modifier and Type Field Description protected AtomicBooleanisTryingToConnect
-
Constructor Summary
Constructors Constructor Description Sink()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidconnect()Called to connect to the backend before events are publishedvoidconnectWithRetry()abstract voiddestroy()Called at the end to clean all the resources consumedabstract voiddisconnect()Called after all publishing is done, or when ConnectionUnavailableException is thrownprotected abstract ServiceDeploymentInfoexposeServiceDeploymentInfo()Give information to the deployment about the service exposed by the sink.SinkHandlergetHandler()SinkMappergetMapper()List<ServiceDeploymentInfo>getServiceDeploymentInfoList()io.siddhi.query.api.definition.StreamDefinitiongetStreamDefinition()abstract String[]getSupportedDynamicOptions()Supported dynamic options by the transportabstract Class[]getSupportedInputEventClasses()StringgetType()protected abstract StateFactory<S>init(io.siddhi.query.api.definition.StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader sinkConfigReader, SiddhiAppContext siddhiAppContext)Will be called for initialing theSinkvoidinit(io.siddhi.query.api.definition.StreamDefinition streamDefinition, String type, OptionHolder transportOptionHolder, ConfigReader sinkConfigReader, SinkMapper sinkMapper, String mapType, OptionHolder mapOptionHolder, SinkHandler sinkHandler, List<io.siddhi.query.api.annotation.Element> payloadElementList, ConfigReader mapperConfigReader, Map<String,String> deploymentProperties, StreamJunction streamJunction, SiddhiAppContext siddhiAppContext)voidinitOnlyTransport(io.siddhi.query.api.definition.StreamDefinition streamDefinition, OptionHolder transportOptionHolder, ConfigReader sinkConfigReader, String type, DistributedTransport.ConnectionCallback connectionCallback, Map<String,String> deploymentProperties, SiddhiAppContext siddhiAppContext)booleanisConnected()booleanisStateful()voidonError(Object payload, DynamicOptions dynamicOptions, Exception e)voidpublish(Object payload)Sending events via output transportabstract voidpublish(Object payload, DynamicOptions dynamicOptions, S state)Sending events via output transportprotected voidretryPublish(Object payload)voidsetConnected(boolean connected)voidshutdown()
-
-
-
Field Detail
-
isTryingToConnect
protected AtomicBoolean isTryingToConnect
-
-
Method Detail
-
init
public final void init(io.siddhi.query.api.definition.StreamDefinition streamDefinition, String type, OptionHolder transportOptionHolder, ConfigReader sinkConfigReader, SinkMapper sinkMapper, String mapType, OptionHolder mapOptionHolder, SinkHandler sinkHandler, List<io.siddhi.query.api.annotation.Element> payloadElementList, ConfigReader mapperConfigReader, Map<String,String> deploymentProperties, StreamJunction streamJunction, SiddhiAppContext siddhiAppContext)
-
getSupportedInputEventClasses
public abstract Class[] getSupportedInputEventClasses()
-
initOnlyTransport
public final void initOnlyTransport(io.siddhi.query.api.definition.StreamDefinition streamDefinition, OptionHolder transportOptionHolder, ConfigReader sinkConfigReader, String type, DistributedTransport.ConnectionCallback connectionCallback, Map<String,String> deploymentProperties, SiddhiAppContext siddhiAppContext)
-
exposeServiceDeploymentInfo
protected abstract ServiceDeploymentInfo exposeServiceDeploymentInfo()
Give information to the deployment about the service exposed by the sink.- Returns:
- ServiceDeploymentInfo Service related information to the deployment
-
getSupportedDynamicOptions
public abstract String[] getSupportedDynamicOptions()
Supported dynamic options by the transport- Returns:
- the list of supported dynamic option keys
-
init
protected abstract StateFactory<S> init(io.siddhi.query.api.definition.StreamDefinition outputStreamDefinition, OptionHolder optionHolder, ConfigReader sinkConfigReader, SiddhiAppContext siddhiAppContext)
Will be called for initialing theSink- Parameters:
outputStreamDefinition- containing stream definition bind to theSinkoptionHolder- Option holder containing static and dynamic options related to theSinksinkConfigReader- this hold theSinkextensions configuration reader.siddhiAppContext-SiddhiAppContextof the parent siddhi app.
-
publish
public final void publish(Object payload)
Description copied from interface:SinkListenerSending events via output transport- Specified by:
publishin interfaceSinkListener- Parameters:
payload- payload of the event
-
retryPublish
protected void retryPublish(Object payload) throws ConnectionUnavailableException
- Throws:
ConnectionUnavailableException
-
publish
public abstract void publish(Object payload, DynamicOptions dynamicOptions, S state) throws ConnectionUnavailableException
Sending events via output transport- Parameters:
payload- payload of the eventdynamicOptions- of the event constructing the payloadstate- current state of the sink- Throws:
ConnectionUnavailableException- throw when connections are unavailable.
-
connect
public abstract void connect() throws ConnectionUnavailableExceptionCalled to connect to the backend before events are published- Throws:
ConnectionUnavailableException- if it cannot connect to the backend
-
disconnect
public abstract void disconnect()
Called after all publishing is done, or when ConnectionUnavailableException is thrown
-
destroy
public abstract void destroy()
Called at the end to clean all the resources consumed
-
getType
public final String getType()
-
getMapper
public final SinkMapper getMapper()
-
getHandler
public final SinkHandler getHandler()
-
connectWithRetry
public void connectWithRetry()
-
shutdown
public void shutdown()
-
getStreamDefinition
public io.siddhi.query.api.definition.StreamDefinition getStreamDefinition()
-
isConnected
public boolean isConnected()
-
setConnected
public void setConnected(boolean connected)
-
onError
public void onError(Object payload, DynamicOptions dynamicOptions, Exception e)
-
getServiceDeploymentInfoList
public List<ServiceDeploymentInfo> getServiceDeploymentInfoList()
-
isStateful
public boolean isStateful()
-
-