public void sendToSwitch(ConnectionAdapter connectionAdapter, ByteBuf input, short ofVersion, ZeroMQBaseConnector coreConnector, long datapathId, int moduleId) { DeserializationFactory factory = createDeserializationFactory(); DeserializerRegistry registry = new DeserializerRegistryImpl(); registry.init(); factory.setRegistry(registry); DataObject msg = factory.deserialize(input, ofVersion); sendDataObjectToSwitch(connectionAdapter, msg, ofVersion, coreConnector, datapathId, moduleId); }
/** Constructor */ public SwitchConnectionProviderImpl() { serializerRegistry = new SerializerRegistryImpl(); serializerRegistry.init(); serializationFactory = new SerializationFactory(); serializationFactory.setSerializerTable(serializerRegistry); deserializerRegistry = new DeserializerRegistryImpl(); deserializerRegistry.init(); deserializationFactory = new DeserializationFactory(); deserializationFactory.setRegistry(deserializerRegistry); }
/** * To openflow message. * * @param message * the message * @return the openflow message */ private static OpenFlowMessage toOpenFlowMessage(Message message) { if (message.getHeader().getMessageType() != MessageType.OPENFLOW) throw new IllegalArgumentException("Can only convert OPENFLOW messages"); ByteBuf buffer = Unpooled.wrappedBuffer(message.getPayload()); short ofVersion = buffer.readUnsignedByte(); OpenFlowMessage ofm = new OpenFlowMessage(ofVersion); ofm.setPayload(message.getPayload()); ofm.setHeader(message.header); // DESERIALIZATION DeserializerRegistry registry = new DeserializerRegistryImpl(); registry.init(); DeserializationFactory factory = new DeserializationFactory(); factory.setRegistry(registry); DataObject dObj = factory.deserialize(buffer, ofVersion); ofm.setOfMessage(dObj); return ofm; }