sendEvent

Syntax

sendEvent(event)

Details

An event sent by sendEvent goes to the end of the input queue. The engine processes events in the order they are sent to the input queue.

Parameters

event is an event instance.

Returns

None

Examples

Define the events:
class UpdateFactor{
    sym :: STRING
    factor :: DOUBLE
    def UpdateFactor(code, val){
        sym = code
        factor = val
    }
}

class MarketData{
    market :: STRING
    code :: STRING
    price :: DOUBLE
    qty :: INT
    def MarketData(m,c,p,q){
        market = m
        code = c
        price = p
        qty = q
    }
}
Define the monitor:

class MainMonitor : CEPMonitor{
    maxPrice :: DOUBLE

    def MainMonitor(){ maxPrice = 0.0 }
    
    def updateMarketData(event)
  
    def onload(){
        addEventListener(handler=updateMarketData, eventType='MarketData', times='all')
    }

    def updateMarketData(event){
        print("MarketData: "+event.code+" price="+string(event.price))

        if(event.price > maxPrice){
            maxPrice = event.price

            // emitEvent:Output to streaming table
            emitEvent(UpdateFactor("maxPrice", maxPrice))

            // routeEvent: inserts a warning event at the head of the queue for priority processing
            routeEvent(UpdateFactor("alert", maxPrice))

            // sendEvent: inserts an informational event at the tail of the queue for sequential processing
            sendEvent(UpdateFactor("info", maxPrice))
        }
    }
}
Create a streaming table to receive output events:
share streamTable(array(STRING,0) as eventType, array(BLOB,0) as blobs) as simulateResult

serializer = streamEventSerializer(
    name=`simulate,
    eventSchema=[UpdateFactor],
    outputTable=simulateResult
)

dummy = table(array(STRING,0) as eventType, array(BLOB,0) as blobs)
Create a CEP engine:
engine = createCEPEngine(
    name='cep1',
    monitors=<MainMonitor()>,
    dummyTable=dummy,
    eventSchema=[MarketData],
    outputTable=serializer
)

Related functions: addEventListener, createCEPEngine, appendEvent, emitEvent, routeEvent