From 20a21e04fdb09ff2e36822ac539c24ad80628e6c Mon Sep 17 00:00:00 2001 From: elie Date: Fri, 21 Jun 2013 06:34:22 +0000 Subject: disptacher vs transport compatibiilty verification moved into base transport class --- pysnmp/carrier/asynsock/base.py | 3 ++- pysnmp/carrier/base.py | 7 +++++++ pysnmp/carrier/twisted/base.py | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'pysnmp/carrier') 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): -- cgit v1.2.1