public string samples(int mode, long index)
        {
            if (mode > 2 || mode == 1)
            {
                return("");
            }

            var data = new StringBuilder();

            lock (_lock)
            {
                foreach (var s in _disks)
                {
                    FixedSizeQueue <DiskStatQueue> from = s.HistoryForMode(mode);

                    data.Append(string.Format("<item n=\"{0}\" uuid=\"{1}\">", s.name, s.uuid));
                    var diskSample = from.Last();
                    if (index == -1)
                    {
                        data.Append(string.Format("<s id=\"{0}\" p=\"{1}\" u=\"{2}\" s=\"{3}\" f=\"{4}\"></s>", diskSample.SampleID, diskSample.percentage, diskSample.used, diskSample.size, diskSample.free));
                    }
                    else
                    {
                        foreach (var sample in from.Where(c => c.SampleID > index))
                        {
                            data.Append(string.Format("<s id=\"{0}\" p=\"{1}\" u=\"{2}\" s=\"{3}\" f=\"{4}\"></s>", sample.SampleID, sample.percentage, sample.used, sample.size, sample.free));
                        }
                    }
                    data.Append("</item>");
                }
            }
            return(data.ToString());
        }
        public string samples(int mode, int index)
        {
            if (mode > 2)
            {
                return("");
            }

            var data = new StringBuilder();

            lock (_lock)
            {
                foreach (var s in _sensors)
                {
                    FixedSizeQueue <SensorStatQueue> from = s.HistoryForMode(mode);

                    data.Append(string.Format("<item i=\"0\" n=\"{0}\" type=\"{1}\" uuid=\"{2}\">", s.name, s.type, s.name));
                    var sensorSample = from.Last();
                    if (index == -1)
                    {
                        if (sensorSample != null)
                        {
                            data.Append(string.Format("<s id=\"{0}\" v=\"{1}\"></s>", sensorSample.SampleID, sensorSample.Value));
                        }
                    }
                    else
                    {
                        foreach (var sample in from.Where(c => c.SampleID > index))
                        {
                            data.Append(string.Format("<s id=\"{0}\" v=\"{1}\"></s>", sample.SampleID, sample.Value));
                        }
                    }
                    data.Append("</item>");
                }
            }
            return(data.ToString());
        }