23db376181daec61ed5d7c63dbfe97eca851b9c3
[ric-plt/xapp-frame-py.git] / examples / pong_xapp.py
1 """
2 Test xapp 2 that works with 1
3 """
4 # ==================================================================================
5 #       Copyright (c) 2020 Nokia
6 #       Copyright (c) 2020 AT&T Intellectual Property.
7 #
8 #   Licensed under the Apache License, Version 2.0 (the "License");
9 #   you may not use this file except in compliance with the License.
10 #   You may obtain a copy of the License at
11 #
12 #          http://www.apache.org/licenses/LICENSE-2.0
13 #
14 #   Unless required by applicable law or agreed to in writing, software
15 #   distributed under the License is distributed on an "AS IS" BASIS,
16 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 #   See the License for the specific language governing permissions and
18 #   limitations under the License.
19 # ==================================================================================
20 import json
21 from ricxappframe.xapp_frame import RMRXapp, rmr
22
23
24 def post_init(_self):
25     """post init"""
26     print("pong xapp could do some useful stuff here!")
27
28
29 def sixtyh(self, summary, sbuf):
30     """callback for 60000"""
31     self.logger.info("pong registered 60000 handler called!")
32     # see comment in ping about this; bytes does not work with the ric mdc logger currently
33     print("pong 60000 handler received: {0}".format(summary))
34     jpay = json.loads(summary[rmr.RMR_MS_MSG_PAYLOAD])
35     self.rmr_rts(sbuf, new_payload=json.dumps({"ACK": jpay["test_send"]}).encode(), new_mtype=60001, retries=100)
36     self.rmr_free(sbuf)
37
38
39 def defh(self, summary, sbuf):
40     """default callback"""
41     self.logger.info("pong default handler called!")
42     print("pong default handler received: {0}".format(summary))
43     self.rmr_free(sbuf)
44
45
46 xapp = RMRXapp(default_handler=defh, post_init=post_init, use_fake_sdl=True)
47 xapp.register_callback(sixtyh, 60000)
48 xapp.run()  # will not thread by default