diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2018-09-29 21:48:08 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2018-09-29 21:55:18 +0700 |
commit | 61a1ecc988394bcae36056bbb477cb984163a3ef (patch) | |
tree | 9a6e5bcc2c6429f436f83acdb26f07c88496d5e0 | |
parent | ada97f1c5a9e2cc4b142d28f6227d12b4220e750 (diff) |
mncc_sock.py: share common send() / receive() calls
Change-Id: I871c72c8e3392a1be76e0126a24b3bc9a787113d
-rw-r--r-- | mncc_sock.py | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/mncc_sock.py b/mncc_sock.py index 34ab361..9887471 100644 --- a/mncc_sock.py +++ b/mncc_sock.py @@ -15,45 +15,32 @@ import os import mncc import ctypes -class mncc_msg(mncc.gsm_mncc): +class mncc_msg_common: def send(self): return buffer(self)[:] def receive(self, bytes): fit = min(len(bytes), ctypes.sizeof(self)) ctypes.memmove(ctypes.addressof(self), bytes, fit) + +class mncc_msg(mncc.gsm_mncc, mncc_msg_common): def __str__(self): return 'mncc_msg(type=0x%04x, callref=%u, fields=0x%04x)' % (self.msg_type, self.callref, self.fields) def __unicode__(self): return u'mncc_msg(type=0x%04x, callref=%u, fields=0x%04x)' % (self.msg_type, self.callref, self.fields) -class mncc_hello_msg(mncc.gsm_mncc_hello): - def send(self): - return buffer(self)[:] - def receive(self, bytes): - fit = min(len(bytes), ctypes.sizeof(self)) - ctypes.memmove(ctypes.addressof(self), bytes, fit) +class mncc_hello_msg(mncc.gsm_mncc_hello, mncc_msg_common): def __str__(self): return 'mncc_hello_msg(version=0x%04x)' % (self.version) def __unicode__(self): return u'mncc_hello_msg(version=0x%04x)' % (self.version) -class mncc_rtp_msg(mncc.gsm_mncc_rtp): - def send(self): - return buffer(self)[:] - def receive(self, bytes): - fit = min(len(bytes), ctypes.sizeof(self)) - ctypes.memmove(ctypes.addressof(self), bytes, fit) +class mncc_rtp_msg(mncc.gsm_mncc_rtp, mncc_msg_common): def __str__(self): return 'mncc_rtp_msg(type=0x%04x, callref=%u, ip=%x, port=%u)' % (self.msg_type, self.callref, self.ip, self.port) def __unicode__(self): return u'mncc_rtp_msg(type=0x%04x, callref=%u, ip=%x, port=%u)' % (self.msg_type, self.callref, self.ip, self.port) -class mncc_bridge_msg(mncc.gsm_mncc_bridge): - def send(self): - return buffer(self)[:] - def receive(self, bytes): - fit = min(len(bytes), ctypes.sizeof(self)) - ctypes.memmove(ctypes.addressof(self), bytes, fit) +class mncc_bridge_msg(mncc.gsm_mncc_bridge, mncc_msg_common): def __str__(self): return 'mncc_bridge_msg(%u, %u)' % (self.callref[0], self.callref[1]) def __unicode__(self): |