Ejemplo n.º 1
0
        public void WriteMapField <K, V>(String name, short id, IThriftCodec <IDictionary <K, V> > codec, IDictionary <K, V> map)
        {
            if (map == null)
            {
                return;
            }

            Protocol.WriteFieldBegin(new TField(name, TType.Map, id));
            codec.Write(map, Protocol);
            Protocol.WriteFieldEnd();
        }
Ejemplo n.º 2
0
        public void WriteListField <E>(String name, short id, IThriftCodec <IList <E> > codec, IList <E> list)
        {
            if (list == null)
            {
                return;
            }

            Protocol.WriteFieldBegin(new TField(name, TType.List, id));
            codec.Write(list, Protocol);
            Protocol.WriteFieldEnd();
        }
Ejemplo n.º 3
0
        public void WriteSetField <E>(String name, short id, IThriftCodec <ISet <E> > codec, ISet <E> set)
        {
            if (set == null)
            {
                return;
            }

            Protocol.WriteFieldBegin(new TField(name, TType.Set, id));
            codec.Write(set, Protocol);
            Protocol.WriteFieldEnd();
        }
Ejemplo n.º 4
0
        public void WriteStructField <T>(String name, short id, IThriftCodec <T> codec, T fieldValue)
        {
            if (fieldValue == null)
            {
                return;
            }

            Protocol.WriteFieldBegin(new TField(name, TType.Struct, id));
            codec.Write(fieldValue, Protocol);
            Protocol.WriteFieldEnd();
        }
Ejemplo n.º 5
0
        public void WriteEnumField <T>(String name, short id, IThriftCodec <T> codec, T enumValue)
            where T : struct
        {
            if (enumValue.Equals(default(T)))
            {
                return;
            }

            Protocol.WriteFieldBegin(new TField(name, TType.I32, id));
            codec.Write(enumValue, Protocol);
            Protocol.WriteFieldEnd();
        }
Ejemplo n.º 6
0
        public void WriteList <T>(IThriftCodec <T> elementCodec, IEnumerable <T> list)
        {
            if (list == null)
            {
                return;
            }

            Protocol.WriteListBegin(new TList(elementCodec.Type.ProtocolType.ToTType(), list.Count()));

            foreach (T element in list)
            {
                elementCodec.Write(element, Protocol);
            }

            Protocol.WriteListEnd();
        }
Ejemplo n.º 7
0
        public void WriteSet <T>(IThriftCodec <T> elementCodec, ISet <T> set)
        {
            if (set == null)
            {
                return;
            }

            Protocol.WriteSetBegin(new TSet(elementCodec.Type.ProtocolType.ToTType(), set.Count));

            foreach (T element in set)
            {
                elementCodec.Write(element, Protocol);
            }

            Protocol.WriteSetEnd();
        }
Ejemplo n.º 8
0
        public void WriteMap <K, V>(IThriftCodec <K> keyCodec, IThriftCodec <V> valueCodec, IDictionary <K, V> map)
        {
            if (map == null)
            {
                return;
            }

            Protocol.WriteMapBegin(new TMap(keyCodec.Type.ProtocolType.ToTType(), valueCodec.Type.ProtocolType.ToTType(), map.Count));

            foreach (var entry in map)
            {
                keyCodec.Write(entry.Key, Protocol);
                valueCodec.Write(entry.Value, Protocol);
            }

            Protocol.WriteMapEnd();
        }
Ejemplo n.º 9
0
        public void Write <T>(ThriftType type, T value, TProtocol protocol)
        {
            IThriftCodec <T> codec = GetCodec(type) as IThriftCodec <T>;

            codec.Write(value, protocol);
        }
Ejemplo n.º 10
0
        public void Write(T value, TProtocol protocol)
        {
            Object thriftValue = _typeCoercion.ToThrift.DynamicInvoke(value);

            _codec.Write((T)thriftValue, protocol);
        }