X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=examples%2Fpong_xapp.py;h=ac72813857a3fbea54546d3f73198d5075cf1f79;hb=1c9ce6b9bd1c50051b19845c92bdfeb5bbfe7a10;hp=496c72e02280f0cc3059bdfae9f7291d0a0ccf7c;hpb=21f659c694968e95ad4e1a568538a586c5291b62;p=ric-plt%2Fxapp-frame-py.git diff --git a/examples/pong_xapp.py b/examples/pong_xapp.py index 496c72e..ac72813 100644 --- a/examples/pong_xapp.py +++ b/examples/pong_xapp.py @@ -21,23 +21,27 @@ import json from ricxappframe.xapp_frame import RMRXapp -# Note, this is an OOP pattern for this that I find slightly more natural -# The problem is we want the client xapp to be able to call methods defined in the RMRXapp -# Another exactly equivelent way would have been to use Closures like -# def consume(summary, sbuf): -# xapp.rts() -# xapp = RMRXapp(consume) -# However, the subclass looks slightly more natural. Open to the alternative. - - -class MyXapp(RMRXapp): - def consume(self, summary, sbuf): - """callbnack called for each new message""" - print(summary) - jpay = json.loads(summary["payload"]) - self.rmr_rts(sbuf, new_payload=json.dumps({"ACK": jpay["test_send"]}).encode(), new_mtype=60001, retries=100) - self.rmr_free(sbuf) - - -xapp = MyXapp(use_fake_sdl=True) -xapp.run() +def post_init(_self): + """post init""" + print("ping xapp could do some useful stuff here!") + + +def sixtyh(self, summary, sbuf): + """callback for 60000""" + print("registered 60000 handler called!") + print(summary) + jpay = json.loads(summary["payload"]) + self.rmr_rts(sbuf, new_payload=json.dumps({"ACK": jpay["test_send"]}).encode(), new_mtype=60001, retries=100) + self.rmr_free(sbuf) + + +def defh(self, summary, sbuf): + """default callback""" + print("default handler called!") + print(summary) + self.rmr_free(sbuf) + + +xapp = RMRXapp(default_handler=defh, post_init=post_init, use_fake_sdl=True) +xapp.register_callback(sixtyh, 60000) +xapp.run() # will not thread by default