diff options
author | elie <elie> | 2013-06-30 15:23:26 +0000 |
---|---|---|
committer | elie <elie> | 2013-06-30 15:23:26 +0000 |
commit | 9c7ed7cd8f43414243c871a4e68d377beef44fc7 (patch) | |
tree | 35778e49457790a208e99b7dc8d91e5632d20d94 /pysnmp/carrier/base.py | |
parent | efc55fdcbb3bfcac3a64e345d000a3465e73c00a (diff) | |
download | pysnmp-git-9c7ed7cd8f43414243c871a4e68d377beef44fc7.tar.gz |
move common methods to AbstractTransport
Diffstat (limited to 'pysnmp/carrier/base.py')
-rw-r--r-- | pysnmp/carrier/base.py | 16 |
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() |