summaryrefslogtreecommitdiff
path: root/pysnmp/carrier/base.py
diff options
context:
space:
mode:
authorelie <elie>2013-06-30 15:23:26 +0000
committerelie <elie>2013-06-30 15:23:26 +0000
commit9c7ed7cd8f43414243c871a4e68d377beef44fc7 (patch)
tree35778e49457790a208e99b7dc8d91e5632d20d94 /pysnmp/carrier/base.py
parentefc55fdcbb3bfcac3a64e345d000a3465e73c00a (diff)
downloadpysnmp-git-9c7ed7cd8f43414243c871a4e68d377beef44fc7.tar.gz
move common methods to AbstractTransport
Diffstat (limited to 'pysnmp/carrier/base.py')
-rw-r--r--pysnmp/carrier/base.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/pysnmp/carrier/base.py b/pysnmp/carrier/base.py
index 238da251..ccd3d512 100644
--- a/pysnmp/carrier/base.py
+++ b/pysnmp/carrier/base.py
@@ -154,12 +154,26 @@ class AbstractTransportDispatcher:
for tDomain in list(self.__transports):
self.__transports[tDomain].closeTransport()
self.unregisterTransport(tDomain)
+ self.__transports.clear()
self.unregisterRecvCbFun()
self.unregisterTimerCbFun()
-
class AbstractTransport:
protoTransportDispatcher = None
+ _cbFun = None
@classmethod
def isCompatibleWithDispatcher(cls, transportDispatcher):
return isinstance(transportDispatcher, cls.protoTransportDispatcher)
+
+ def registerCbFun(self, cbFun):
+ if self._cbFun:
+ raise error.CarrierError(
+ 'Callback function %s already registered at %s' % (self.__cbFun, self)
+ )
+ self._cbFun = cbFun
+
+ def unregisterCbFun(self):
+ self._cbFun = None
+
+ def closeTransport(self):
+ self.unregisterCbFun()