Example #1
0
        /// <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);
        }
Example #2
0
        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);
        }