summaryrefslogtreecommitdiff
path: root/pysnmp/carrier
diff options
context:
space:
mode:
authorelie <elie>2013-06-21 06:34:22 +0000
committerelie <elie>2013-06-21 06:34:22 +0000
commit20a21e04fdb09ff2e36822ac539c24ad80628e6c (patch)
treee477171f68edc73f5a59e1391806bc61efae3d5a /pysnmp/carrier
parent42a93341a465b3905dee0cbcb342fc1eb4f1b483 (diff)
downloadpysnmp-20a21e04fdb09ff2e36822ac539c24ad80628e6c.tar.gz
disptacher vs transport compatibiilty verification moved into
base transport class
Diffstat (limited to 'pysnmp/carrier')
-rw-r--r--pysnmp/carrier/asynsock/base.py3
-rw-r--r--pysnmp/carrier/base.py7
-rw-r--r--pysnmp/carrier/twisted/base.py3
3 files changed, 11 insertions, 2 deletions
diff --git a/pysnmp/carrier/asynsock/base.py b/pysnmp/carrier/asynsock/base.py
index 30d9137..83de36c 100644
--- a/pysnmp/carrier/asynsock/base.py
+++ b/pysnmp/carrier/asynsock/base.py
@@ -2,10 +2,11 @@
import socket, sys
import asyncore
from pysnmp.carrier import error
+from pysnmp.carrier.base import AbstractTransport
from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher
from pysnmp import debug
-class AbstractSocketTransport(asyncore.dispatcher):
+class AbstractSocketTransport(asyncore.dispatcher, AbstractTransport):
protoTransportDispatcher = AsynsockDispatcher
sockFamily = sockType = None
retryCount = 0; retryInterval = 0
diff --git a/pysnmp/carrier/base.py b/pysnmp/carrier/base.py
index bb2424e..238da25 100644
--- a/pysnmp/carrier/base.py
+++ b/pysnmp/carrier/base.py
@@ -156,3 +156,10 @@ class AbstractTransportDispatcher:
self.unregisterTransport(tDomain)
self.unregisterRecvCbFun()
self.unregisterTimerCbFun()
+
+
+class AbstractTransport:
+ protoTransportDispatcher = None
+ @classmethod
+ def isCompatibleWithDispatcher(cls, transportDispatcher):
+ return isinstance(transportDispatcher, cls.protoTransportDispatcher)
diff --git a/pysnmp/carrier/twisted/base.py b/pysnmp/carrier/twisted/base.py
index fba21da..fa1da90 100644
--- a/pysnmp/carrier/twisted/base.py
+++ b/pysnmp/carrier/twisted/base.py
@@ -9,8 +9,9 @@
# Description: twisted DatagramProtocol UDP transport
#
from pysnmp.carrier.twisted.dispatch import TwistedDispatcher
+from pysnmp.carrier.base import AbstractTransport
-class AbstractTwistedTransport:
+class AbstractTwistedTransport(AbstractTransport):
protoTransportDispatcher = TwistedDispatcher
"""Base Twisted Transport, to be used with TwistedDispatcher"""
def __init__(self):