aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Telemetry/TelemetryInMemoryQueueManager.cs
blob: 2197bac99c0a8fd31cf8a247f3306d16d98880ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core;

namespace Tango.Telemetry
{
    public class TelemetryInMemoryQueueManager : ITelemetryQueueManager
    {
        private ProducerConsumerQueue<TelemetryPublishPackage> _queue;

        public int Count { get { return _queue.Count; } }

        public TelemetryInMemoryQueueManager()
        {
            _queue = new ProducerConsumerQueue<TelemetryPublishPackage>();
        }

        public TelemetryPublishPackage Dequeue()
        {
            return _queue.BlockDequeue();
        }

        public void Enqueue(TelemetryPublishPackage package)
        {
            _queue.BlockEnqueue(package);
        }

        public void Clear()
        {
            _queue = new ProducerConsumerQueue<TelemetryPublishPackage>();
        }
    }
}