''' 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))
''' 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):