示例#1
0
            public override void wsc(int i, int h, MappedOutStream @out)
            {
                container.Container[] d = ((P0)owner).Data;
                ConstantLengthArray <System.Int64> type = (ConstantLengthArray <System.Int64>) this.type.cast <System.Int64, System.Object>();
                int size = type.length;

                for (; i != h; i++)
                {
                    System.Collections.ArrayList x = d[i].arr;
                    foreach (long e in x)
                    {
                        @out.v64(e);
                    }
                    ;
                }
            }
示例#2
0
            public override void rsc(int i, int h, MappedInStream @in)
            {
                container.Container[] d = ((P0)owner).Data;
                ConstantLengthArray <System.Int64> type = (ConstantLengthArray <System.Int64>) this.type.cast <System.Int64, System.Object>();
                int size = type.length;

                for (; i != h; i++)
                {
                    int s = size;
                    System.Collections.ArrayList v = new ArrayList(size);
                    while (s-- > 0)
                    {
                        v.Add(@in.v64());
                    }
                    d[i].arr = v;
                }
            }
示例#3
0
            public override void osc(int i, int h)
            {
                ConstantLengthArray <System.Int64> type = (ConstantLengthArray <System.Int64>) this.type.cast <System.Int64, System.Object>();
                int size = type.length;

                container.Container[] d = ((P0)owner.basePool).Data;
                long result             = 0L;

                for (; i != h; i++)
                {
                    System.Collections.ArrayList v = null == d[i].arr ? null : v = (System.Collections.ArrayList)d[i].arr;
                    if (v.Count != type.length)
                    {
                        throw new Exception("constant length array has wrong size");
                    }

                    foreach (long x in v)
                    {
                        result += V64.singleV64Offset(x);
                    }
                }
                offset += result;
            }