/// <summary> /// Create the codec used to serialize/deserialize NamingEvent messages /// </summary> /// <returns>The serialization codec</returns> private ICodec <NamingEvent> CreateServerCodec() { MultiCodec <NamingEvent> codec = new MultiCodec <NamingEvent>(); codec.Register(new NamingLookupRequestCodec(), "org.apache.reef.io.network.naming.serialization.NamingLookupRequest"); codec.Register(new NamingLookupResponseCodec(), "org.apache.reef.io.network.naming.serialization.NamingLookupResponse"); NamingRegisterRequestCodec requestCodec = new NamingRegisterRequestCodec(); codec.Register(requestCodec, "org.apache.reef.io.network.naming.serialization.NamingRegisterRequest"); codec.Register(new NamingRegisterResponseCodec(requestCodec), "org.apache.reef.io.network.naming.serialization.NamingRegisterResponse"); codec.Register(new NamingUnregisterRequestCodec(), "org.apache.reef.io.network.naming.serialization.NamingUnregisterRequest"); return(codec); }
public void TestMultiCodec() { MultiCodec <BaseEvent> codec = new MultiCodec <BaseEvent>(); codec.Register(new Event1Codec()); codec.Register(new Event2Codec()); byte[] d1Data = codec.Encode(new Event1(42)); byte[] d2Data = codec.Encode(new Event2("Tony")); Event1 e1 = (Event1)codec.Decode(d1Data); Event2 e2 = (Event2)codec.Decode(d2Data); Assert.Equal(42, e1.Number); Assert.Equal("Tony", e2.Name); }