bobocep.cep.engine.receiver.receiver.BoboReceiver

class bobocep.cep.engine.receiver.receiver.BoboReceiver(validator: bobocep.cep.engine.receiver.validator.BoboValidator, gen_event_id: bobocep.cep.gen.event_id.BoboGenEventID, gen_timestamp: bobocep.cep.gen.timestamp.BoboGenTimestamp, gen_event: Optional[bobocep.cep.gen.event.BoboGenEvent] = None, max_size: int = 0)[source]

Bases: bobocep.cep.engine.task.BoboEngineTask, bobocep.cep.engine.receiver.pubsub.BoboReceiverPublisher, bobocep.cep.engine.producer.pubsub.BoboProducerSubscriber, bobocep.cep.engine.forwarder.pubsub.BoboForwarderSubscriber

A receiver task.

__init__(validator: bobocep.cep.engine.receiver.validator.BoboValidator, gen_event_id: bobocep.cep.gen.event_id.BoboGenEventID, gen_timestamp: bobocep.cep.gen.timestamp.BoboGenTimestamp, gen_event: Optional[bobocep.cep.gen.event.BoboGenEvent] = None, max_size: int = 0)[source]
Parameters
  • validator – Incoming data validator.

  • gen_event_id – Event ID generator.

  • gen_timestamp – Timestamp generator.

  • gen_event – Event generator (optional).

  • max_size – Maximum queue size. Default: 0 (unbounded).

add_data(data: Any) None[source]
Parameters

data – Data to add to the receiver.

Raises

BoboReceiverError – If receiver queue is full.

close() None[source]

Closes the Receiver.

is_closed() bool[source]
Returns

True if Receiver is closed; False otherwise.

on_forwarder_update(event: bobocep.cep.event.action.BoboEventAction) None[source]
Parameters

event – Action event generated by Forwarder.

on_producer_update(event: bobocep.cep.event.complex.BoboEventComplex, local: bool) None[source]
Parameters
  • event – Complex event generated by Producer.

  • localTrue if the complex event was generated using a locally-completed run; False otherwise.

size() int[source]
Returns

Queue size.

subscribe(subscriber: bobocep.cep.engine.receiver.pubsub.BoboReceiverSubscriber) None[source]
Parameters

subscriber – Subscriber to Receiver data.

update() bool[source]

Processes data from its queue, if any. Also processes a generated event if receiver is set to generate any. A BoboEventSimple instance is produced for data if they pass validation and are not already BoboEvent instances. Valid data are then sent to receiver subscribers.

Returns

True if queue or generated data are processed; False otherwise.