/// <summary> /// Constructor for creating a data item with the given number of attributes /// </summary> /// <param name="c">The number of attributes to track</param> /// <param name="r">Delegate to release data item back to data pool</param> public DataItem(int c, Utility.DataItemPool.ReleaseDataItem r) { cAttrs = c; reldataitem = r; //ArrayList temp = new ArrayList(c); //#warning Testing out synchronization of data items //alValues = ArrayList.Synchronized(temp); //alValues = new ArrayList(c); alValues = dvm.GetALValues(); }
/// <summary> /// Copy constructor for a data item /// </summary> /// <param name="di">The data item to copy</param> /// <param name="c">The number of attributes more to track than the input data item has</param> /// <param name="r">Delegate to release data item back to data pool</param> public DataItem(DataItem di, uint c, Utility.DataItemPool.ReleaseDataItem r) { cAttrs = (int)c + di.Count; fEOF = di.fEOF; TimeStamp = di.TimeStamp; reldataitem = r; alValues = dvm.GetALValues(); foreach (object o in di.alValues) { AddValue(o); } }
/// <summary> /// Constructor to create a data item from a serialized one /// </summary> /// <param name="info"></param> /// <param name="context"></param> protected DataItem(SerializationInfo info, StreamingContext context) { cAttrs = info.GetInt32(CATTRS_SERIALIZATION); fEOF = info.GetBoolean(EOF_SERIALIZATION); TimeStamp = info.GetDateTime(TS_SERIALIZATION); reldataitem = null; alValues = dvm.GetALValues(); int tmp; foreach (var si in info) { //Console.WriteLine("<{0} = {1}>", si.Name, si.Value); if (Int32.TryParse(si.Name, out tmp)) this.AddValue(si.Value); } }