示例#1
0
'''
Created on 2013-3-18

@author: kfirst
'''

from flex.base.handler import DataHandler
from flex.core import core

logger = core.get_logger()

class PacketDispatcher(DataHandler):

    def __init__(self, packet_transformer):
        self._handlers = {}
        self._transformer = packet_transformer
#        self._packets = Queue.Queue(100)
#        self._start_thread()

    def register_handler(self, packet_type, packet_handler):
        self._handlers[packet_type] = packet_handler

    def handle(self, data):
        packet = self._transformer.data_to_packet(data)
#        self._packets.put(packet, False)
        return self._handle(packet)

    def _handle(self, packet):
        try:
            handler = self._handlers[packet.type]
#            logger.debug('Received Packet from %s, %s' % (packet.src, packet))
示例#2
0
文件: pox_app.py 项目: kfirst/Flex
'''
Created on 2013-4-6

@author: kfirst
'''

from flex.base.module import Module
from flex.core import core as flex_core
import time

logger = flex_core.get_logger()

class PoxApp(Module):

    def __init__(self, self_controller, pox_config):
        self._myself = self_controller
        self._config = pox_config

    def start(self):
        launch_pox(self._config, self)
        time.sleep(1)

        from flex.pox.managers import ConcernManager
        self.concern_manager = ConcernManager()
        from flex.pox.managers import ProcesserManager
        self.processer_manager = ProcesserManager()

    def register(self, concern_type, switch = None):
        self.concern_manager.add(concern_type, switch)

    def process(self, api_content):