示例#1
0
        public static void Read(DryadLinqBinaryReader reader, out IndexedValue <T> indexedVal)
        {
            int index = reader.ReadInt32();
            T   val   = serializer.Read(reader);

            indexedVal = new IndexedValue <T>(index, val);
        }
示例#2
0
        public UDT_ObjectFieldAndCustomSerializer Read(DryadLinqBinaryReader reader)
        {
            string tmp = reader.ReadString();
            int    val = Int32.Parse(tmp);

            return(new UDT_ObjectFieldAndCustomSerializer(val));
        }
示例#3
0
 public static void Read(DryadLinqBinaryReader reader, out ForkValue <T> val)
 {
     val = new ForkValue <T>();
     if (reader.ReadBool())
     {
         val.Value = serializer.Read(reader);
     }
 }
示例#4
0
        public UDT_ExternalCustomSerializer Read(DryadLinqBinaryReader reader)
        {
            var val = new UDT_ExternalCustomSerializer(0);

            val.m_field1 = reader.ReadInt32();
            val.m_field2 = reader.ReadInt32();

            return(val);
        }
示例#5
0
        public static UDT_StaticSerializer Read(DryadLinqBinaryReader reader)
        {
            var val = new UDT_StaticSerializer(0);

            val.m_field1 = reader.ReadInt32();
            val.m_field2 = reader.ReadInt32();

            return(val);
        }
示例#6
0
        public static void Read(DryadLinqBinaryReader reader, out IList <T> seq)
        {
            int cnt = reader.ReadInt32();

            seq = new List <T>(cnt);
            for (int i = 0; i < cnt; i++)
            {
                seq.Add(serializer.Read(reader));
            }
        }
示例#7
0
        public static void Read(DryadLinqBinaryReader reader, out Collection <T> set)
        {
            int cnt = reader.ReadInt32();

            set = new Collection <T>();
            for (int i = 0; i < cnt; i++)
            {
                set.Add(serializer.Read(reader));
            }
        }
示例#8
0
        public static void Read(DryadLinqBinaryReader reader, out Stack <T> stack)
        {
            int cnt = reader.ReadInt32();

            stack = new Stack <T>(cnt);
            for (int i = 0; i < cnt; i++)
            {
                stack.Push(serializer.Read(reader));
            }
        }
示例#9
0
        public static void Read(DryadLinqBinaryReader reader, out Queue <T> queue)
        {
            int cnt = reader.ReadInt32();

            queue = new Queue <T>(cnt);
            for (int i = 0; i < cnt; i++)
            {
                queue.Enqueue(serializer.Read(reader));
            }
        }
示例#10
0
        public static void Read(DryadLinqBinaryReader reader, out LinkedList <T> list)
        {
            int cnt = reader.ReadInt32();

            list = new LinkedList <T>();
            for (int i = 0; i < cnt; i++)
            {
                list.AddLast(serializer.Read(reader));
            }
        }
示例#11
0
        public static void Read(DryadLinqBinaryReader reader, out AggregateValue <T> aggVal)
        {
            long cnt = reader.ReadInt64();
            T    val = default(T);

            if (cnt > 0)
            {
                val = serializer.Read(reader);
            }
            aggVal = new AggregateValue <T>(val, cnt);
        }
示例#12
0
        public static void Read(DryadLinqBinaryReader reader, out IEnumerable <T> seq)
        {
            int cnt = reader.ReadInt32();

            T[] elems = new T[cnt];
            for (int i = 0; i < cnt; i++)
            {
                elems[i] = serializer.Read(reader);
            }
            seq = new DryadLinqSequence <T>(elems);
        }
示例#13
0
        public static void Read(DryadLinqBinaryReader reader, out ReadOnlyCollection <T> set)
        {
            int      cnt = reader.ReadInt32();
            List <T> lst = new List <T>(cnt);

            for (int i = 0; i < cnt; i++)
            {
                lst.Add(serializer.Read(reader));
            }
            set = new ReadOnlyCollection <T>(lst);
        }
示例#14
0
文件: BitVector.cs 项目: xyuan/Dryad
        /// <summary>
        /// Reads a BitVector from the specified DryadLinqBinaryReader.
        /// </summary>
        /// <param name="reader">The DryadLinqBinaryReader to read from.</param>
        /// <returns>A BitVector</returns>
        public static BitVector Read(DryadLinqBinaryReader reader)
        {
            Int32 len = reader.ReadCompactInt32();

            byte[] values = new byte[len];
            for (int i = 0; i < len; i++)
            {
                values[i] = reader.ReadUByte();
            }
            return(new BitVector(values));
        }
示例#15
0
        public static void Read(DryadLinqBinaryReader reader, out Nullable <T> val)
        {
            bool hasValue = reader.ReadBool();

            if (hasValue)
            {
                val = serializer.Read(reader);
            }
            else
            {
                val = null;
            }
        }
示例#16
0
        //
        // sample recursive custom serializer
        //
        public UDT_CircularTypeWithCustomSerializer Read(DryadLinqBinaryReader reader)
        {
            UDT_CircularTypeWithCustomSerializer obj = new UDT_CircularTypeWithCustomSerializer();

            bool bHasValidNext = reader.ReadBool();

            obj.m_field1 = reader.ReadInt32();

            if (bHasValidNext)
            {
                obj.m_next = this.Read(reader); // recursively read the next
            }
            else
            {
                obj.m_next = null;  // terminate recursion
            }

            return(obj);
        }
示例#17
0
 public DryadLinqRecordUShortReader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#18
0
 public override SqlDateTime Read(DryadLinqBinaryReader reader)
 {
     return(reader.ReadSqlDateTime());
 }
示例#19
0
 public UDT_EmptyTypeWithCustomSerializer Read(DryadLinqBinaryReader reader)
 {
     return(new UDT_EmptyTypeWithCustomSerializer(0));
 }
示例#20
0
 public DryadLinqRecordBinaryReader(DryadLinqBinaryReader reader)
 {
     this.m_reader = reader;
 }
示例#21
0
        public override LineRecord Read(DryadLinqBinaryReader reader)
        {
            string line = reader.ReadString();

            return(new LineRecord(line));
        }
示例#22
0
 public DryadLinqRecordSqlDateTimeReader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#23
0
 public DryadRecordGuidReader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#24
0
 public DryadLinqRecordDoubleReader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#25
0
 public DryadLinqRecordStringReader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#26
0
 public DryadLinqRecordDecimalReader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#27
0
 public DryadLinqRecordFloatReader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#28
0
 public DryadLinqRecordUInt64Reader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#29
0
 public DryadLinqRecordInt32Reader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }
示例#30
0
 public DryadLinqRecordCharReader(DryadLinqBinaryReader reader)
     : base(reader)
 {
 }