/// <summary> /// Query the next data in the streaming database. /// </summary> /// <param name="nWait">Specfies the maximum amount of time (in ms.) to wait for data.</param> /// <returns>A simple datum containing the data is returned.</returns> public SimpleDatum Query(int nWait) { if (m_iquery.QueryType == CUSTOM_QUERY_TYPE.REAL) { List <double[]> rgData = m_iquery.QueryReal(); if (rgData == null || rgData.Count == 0 || rgData[0].Length == 0) { return(null); } double[] rgFullData = new double[rgData[0].Length * rgData.Count]; int nOffset = 0; for (int i = 0; i < rgData.Count; i++) { Array.Copy(rgData[i], 0, rgFullData, nOffset, rgData[i].Length); nOffset += rgData[i].Length; } return(new SimpleDatum(true, rgData.Count, 1, rgData[0].Length, -1, DateTime.MinValue, null, rgFullData.ToList(), 0, false, -1)); } else { byte[] rgData = m_iquery.QueryBytes(); if (rgData == null || rgData.Length == 0) { return(null); } return(new SimpleDatum(false, 1, 1, rgData.Length, -1, DateTime.MinValue, rgData.ToList(), null, 0, false, -1)); } }