2 Test xapp 2 that works with 1
4 # ==================================================================================
5 # Copyright (c) 2020 Nokia
6 # Copyright (c) 2020 AT&T Intellectual Property.
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
12 # http://www.apache.org/licenses/LICENSE-2.0
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 # ==================================================================================
21 from ricxappframe.xapp_frame import RMRXapp
24 # Note, this is an OOP pattern for this that I find slightly more natural
25 # The problem is we want the client xapp to be able to call methods defined in the RMRXapp
26 # Another exactly equivelent way would have been to use Closures like
27 # def consume(summary, sbuf):
29 # xapp = RMRXapp(consume)
30 # However, the subclass looks slightly more natural. Open to the alternative.
33 class MyXapp(RMRXapp):
35 print("ping xapp could do some useful stuff here!")
37 def consume(self, summary, sbuf):
38 """callbnack called for each new message"""
40 jpay = json.loads(summary["payload"])
41 self.rmr_rts(sbuf, new_payload=json.dumps({"ACK": jpay["test_send"]}).encode(), new_mtype=60001, retries=100)
45 xapp = MyXapp(use_fake_sdl=True)