예제 #1
0
            public DataList(EventHandler handler, DataResource owner, int dataCount, BinaryReader r)
                : base(handler)
            {
                this.elementHandler = handler;
                this.owner          = owner;
                this.Capacity       = dataCount;

                Stream s = r.BaseStream;
                int    i;
                //long savedPos = s.Position;
                Data data;

                fieldPosSorted = new List <Data>(dataCount);
                s.Position     = owner.dataTablePosition;
                for (i = 0; i < dataCount; i++)
                {
                    data = new Data(0, elementHandler, owner, r);
                    this.Add(data);
                    fieldPosSorted.Add(data);
                }
                //s.Position = savedPos;

                // Go back and read the actual data
                uint length;

                fieldPosSorted.Sort(FieldPosComparer.Singleton);
                for (i = 0; i < dataCount; i++)
                {
                    data   = fieldPosSorted[i];
                    length = i < dataCount - 1
                        ? fieldPosSorted[i + 1].FieldPosition - data.FieldPosition
                        : owner.structureTablePosition - data.FieldPosition;
                    data.ParseFieldData(length, s);
                }
            }
예제 #2
0
 public Data(int APIversion, EventHandler handler, DataResource owner, BinaryReader r) : base(APIversion, handler)
 {
     this.owner = owner; Parse(r);
 }
예제 #3
0
 public Data(int APIversion, EventHandler handler, DataResource owner) : base(APIversion, handler)
 {
     this.owner = owner;
 }
예제 #4
0
 public DataList(EventHandler handler, DataResource owner, IEnumerable <Data> ilt) : base(handler, ilt)
 {
     this.owner = owner;
 }
예제 #5
0
 public DataList(EventHandler handler, DataResource owner) : base(handler)
 {
     this.owner = owner;
 }