diff --git a/src/NmeaParser/NmeaDevice.cs b/src/NmeaParser/NmeaDevice.cs index bb58aaf..adfe1a7 100644 --- a/src/NmeaParser/NmeaDevice.cs +++ b/src/NmeaParser/NmeaDevice.cs @@ -21,7 +21,7 @@ using System.Text; using System.Threading.Tasks; using System.IO; using System.Threading; - + namespace NmeaParser { /// @@ -33,17 +33,17 @@ namespace NmeaParser private string m_message = ""; private Stream m_stream; private System.Threading.CancellationTokenSource m_cts; - private TaskCompletionSource closeTask; - - /// - /// Initializes a new instance of the class. - /// - protected NmeaDevice() + private TaskCompletionSource m_closeTask; + private bool m_isOpening; + + /// + /// Initializes a new instance of the class. + /// + protected NmeaDevice() { } - bool isOpening; - /// + /// /// Opens the device connection. /// /// @@ -51,21 +51,21 @@ namespace NmeaParser { lock (m_lockObject) { - if (IsOpen || isOpening) return; - isOpening = true; + if (IsOpen || m_isOpening) return; + m_isOpening = true; } m_cts = new System.Threading.CancellationTokenSource(); m_stream = await OpenStreamAsync(); StartParser(); - MultiPartMessageCache.Clear(); + MultiPartMessageCache.Clear(); lock (m_lockObject) { IsOpen = true; - isOpening = false; + m_isOpening = false; } - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "_")] + } + + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "_")] private void StartParser() { var token = m_cts.Token; @@ -89,8 +89,8 @@ namespace NmeaParser } await Task.Delay(50); } - if (closeTask != null) - closeTask.SetResult(true); + if (m_closeTask != null) + m_closeTask.SetResult(true); }); } @@ -115,11 +115,11 @@ namespace NmeaParser return m_stream.ReadAsync(buffer, 0, 1024, cancellationToken); } - /// - /// Creates the stream the NmeaDevice is working on top off. - /// - /// - protected abstract Task OpenStreamAsync(); + /// + /// Creates the stream the NmeaDevice is working on top off. + /// + /// + protected abstract Task OpenStreamAsync(); /// /// Closes the device. @@ -129,19 +129,19 @@ namespace NmeaParser { if (m_cts != null) { - closeTask = new TaskCompletionSource(); + m_closeTask = new TaskCompletionSource(); if (m_cts != null) m_cts.Cancel(); m_cts = null; } - await closeTask.Task; + await m_closeTask.Task; await CloseStreamAsync(m_stream); MultiPartMessageCache.Clear(); - m_stream = null; - lock (m_lockObject) + m_stream = null; + lock (m_lockObject) { - isOpening = false; - IsOpen = false; + m_isOpening = false; + IsOpen = false; } } /// @@ -188,8 +188,7 @@ namespace NmeaParser private void OnMessageReceived(Nmea.NmeaMessage msg) { var args = new NmeaMessageReceivedEventArgs(msg); - var multi = msg as IMultiPartMessage; - if (multi != null) + if (msg is IMultiPartMessage multi) { args.IsMultipart = true; if (MultiPartMessageCache.ContainsKey(msg.MessageType)) @@ -213,9 +212,9 @@ namespace NmeaParser if (dic.Count == multi.TotalMessages) //We have a full list { MultiPartMessageCache.Remove(msg.MessageType); - args.MessageParts = dic.Values.ToArray(); - } - } + args.MessageParts = dic.Values.ToArray(); + } + } } if (MessageReceived != null) @@ -240,6 +239,7 @@ namespace NmeaParser Dispose(true); GC.SuppressFinalize(this); } + /// /// Releases unmanaged and - optionally - managed resources. ///