kirr has uploaded this change for review.

View Change

trx_toolkit/udp_link: Switch UDPLink to cdef class

- Put fields into the object struct; fields are now accessed directly
via that C-level struct instead of via __dict__ lookup
- cimport instead of import UDPLink at the users

Change-Id: I4768d06450873c3052ea29420848cf7a2752e474
---
M src/target/trx_toolkit/data_if.pyx
M src/target/trx_toolkit/transceiver.pyx
A src/target/trx_toolkit/udp_link.pxd
M src/target/trx_toolkit/udp_link.pyx
4 files changed, 10 insertions(+), 4 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/54/40054/1
diff --git a/src/target/trx_toolkit/data_if.pyx b/src/target/trx_toolkit/data_if.pyx
index 396987e..8dcc4dc 100644
--- a/src/target/trx_toolkit/data_if.pyx
+++ b/src/target/trx_toolkit/data_if.pyx
@@ -20,7 +20,7 @@

import logging as log

-from udp_link import UDPLink
+from udp_link cimport UDPLink
from data_msg import *

class DATAInterface(UDPLink):
diff --git a/src/target/trx_toolkit/transceiver.pyx b/src/target/trx_toolkit/transceiver.pyx
index aaf3a90..519eb4b 100644
--- a/src/target/trx_toolkit/transceiver.pyx
+++ b/src/target/trx_toolkit/transceiver.pyx
@@ -23,7 +23,7 @@

from ctrl_if_trx import CTRLInterfaceTRX
from data_if import DATAInterface
-from udp_link import UDPLink
+from udp_link cimport UDPLink
from trx_list import TRXList

from gsm_shared import HoppingParams
diff --git a/src/target/trx_toolkit/udp_link.pxd b/src/target/trx_toolkit/udp_link.pxd
new file mode 100644
index 0000000..2d02497
--- /dev/null
+++ b/src/target/trx_toolkit/udp_link.pxd
@@ -0,0 +1,6 @@
+# cython: language_level=3
+
+cdef class UDPLink:
+ cdef readonly object sock
+ cdef str remote_addr
+ cdef int remote_port
diff --git a/src/target/trx_toolkit/udp_link.pyx b/src/target/trx_toolkit/udp_link.pyx
index 779c0fc..ae90021 100644
--- a/src/target/trx_toolkit/udp_link.pyx
+++ b/src/target/trx_toolkit/udp_link.pyx
@@ -20,8 +20,8 @@

import socket

-class UDPLink:
- def __init__(self, remote_addr, remote_port, bind_addr = '0.0.0.0', bind_port = 0):
+cdef class UDPLink:
+ def __init__(self, str remote_addr, int remote_port, bind_addr = '0.0.0.0', bind_port = 0):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.sock.bind((bind_addr, bind_port))

To view, visit change 40054. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I4768d06450873c3052ea29420848cf7a2752e474
Gerrit-Change-Number: 40054
Gerrit-PatchSet: 1
Gerrit-Owner: kirr <kirr@nexedi.com>
Gerrit-CC: fixeria <vyanitskiy@sysmocom.de>
Gerrit-CC: osmith <osmith@sysmocom.de>
Gerrit-CC: pespin <pespin@sysmocom.de>