diff options
author | elie <elie> | 2013-06-30 15:23:26 +0000 |
---|---|---|
committer | elie <elie> | 2013-06-30 15:23:26 +0000 |
commit | a84fc1796c72810c20508114605d3b57726a30fa (patch) | |
tree | added3ed8dc8e595911a25faac8c6f00d4c828ca /pysnmp/carrier | |
parent | 5523de2c2a1bce52fcb9821373f8ba2d8e18567f (diff) | |
download | pysnmp-a84fc1796c72810c20508114605d3b57726a30fa.tar.gz |
move common methods to AbstractTransport
Diffstat (limited to 'pysnmp/carrier')
-rw-r--r-- | pysnmp/carrier/asynsock/base.py | 8 | ||||
-rw-r--r-- | pysnmp/carrier/base.py | 16 | ||||
-rw-r--r-- | pysnmp/carrier/twisted/base.py | 11 |
3 files changed, 16 insertions, 19 deletions
diff --git a/pysnmp/carrier/asynsock/base.py b/pysnmp/carrier/asynsock/base.py index 83de36c..862a32d 100644 --- a/pysnmp/carrier/asynsock/base.py +++ b/pysnmp/carrier/asynsock/base.py @@ -59,14 +59,8 @@ class AbstractSocketTransport(asyncore.dispatcher, AbstractTransport): def sendMessage(self, outgoingMessage, transportAddress): raise error.CarrierError('Method not implemented') - def registerCbFun(self, cbFun): - self._cbFun = cbFun - - def unregisterCbFun(self): - self._cbFun = None - def closeTransport(self): - self.unregisterCbFun() + AbstractTransport.closeTransport(self) self.close() # asyncore API diff --git a/pysnmp/carrier/base.py b/pysnmp/carrier/base.py index 238da25..ccd3d51 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() diff --git a/pysnmp/carrier/twisted/base.py b/pysnmp/carrier/twisted/base.py index fa1da90..12bd9ee 100644 --- a/pysnmp/carrier/twisted/base.py +++ b/pysnmp/carrier/twisted/base.py @@ -16,14 +16,3 @@ class AbstractTwistedTransport(AbstractTransport): """Base Twisted Transport, to be used with TwistedDispatcher""" def __init__(self): self._writeQ = [] - - # AbstractTwistedTransport API - - def registerCbFun(self, cbFun): - self._cbFun = cbFun - - def unregisterCbFun(self): - self._cbFun = None - - def closeTransport(self): - self.unregisterCbFun() |