Nirvana Python : DataStream - Receiving DataGroup Events

Python clients can (optionally) act as a DataStream, which allows them to receive events from DataGroups of which they are made members.

The NirvanaSession can be initialised to receive DataGroup events by passing a NirvanaCallback object into the connect method.

Creating a NirvanaCallback Object

Asynchronously receiving events requires an object which implements the NirvanaPython.NirvanaCallback interface. The interface has one method, onMessage which is passed a nConsumeEvent object.

class NirvanaCallback(NirvanaPython.NirvanaCallback):
    def onMessage(self,message):
        print "received an event"

listener = NirvanaCallback()

Registering as a DataStream

In order to register the NirvanaSession as a DataStream, you simply need to pass the NirvanaCallback object into the connect method of NirvanaSession along with the RNAME (see Creating a Session).

mySession = NirvanaSession()
mySession.connect("nsp://localhost:9000",listener)