diff --git a/src/Sportradar.OddsFeed.SDK.API/Extended/IOddsFeedExt.cs b/src/Sportradar.OddsFeed.SDK.API/Extended/IOddsFeedExt.cs index e77c40f..dbbc7c1 100644 --- a/src/Sportradar.OddsFeed.SDK.API/Extended/IOddsFeedExt.cs +++ b/src/Sportradar.OddsFeed.SDK.API/Extended/IOddsFeedExt.cs @@ -1,15 +1,15 @@ /* * Copyright (C) Sportradar AG. See LICENSE for full license governing this code */ -using System; using Sportradar.OddsFeed.SDK.Messages.EventArguments; +using System; namespace Sportradar.OddsFeed.SDK.API.Extended { /// /// Represent an extended unified odds feed /// - public interface IOddsFeedExt : IOddsFeedV5 + public interface IOddsFeedExt : IOddsFeedV6 { /// /// Occurs when any feed message arrives diff --git a/src/Sportradar.OddsFeed.SDK.API/Feed.cs b/src/Sportradar.OddsFeed.SDK.API/Feed.cs index 2546149..f2d9b4a 100644 --- a/src/Sportradar.OddsFeed.SDK.API/Feed.cs +++ b/src/Sportradar.OddsFeed.SDK.API/Feed.cs @@ -29,7 +29,7 @@ namespace Sportradar.OddsFeed.SDK.API /// /// A implementation acting as an entry point to the odds feed SDK /// - public class Feed : EntityDispatcherBase, IOddsFeedV5, IGlobalEventDispatcher + public class Feed : EntityDispatcherBase, IOddsFeedV6, IGlobalEventDispatcher { /// /// A instance used for execution logging @@ -534,61 +534,6 @@ public IOddsFeedSessionBuilder CreateBuilder() return new OddsFeedSessionBuilder(this); } - /// - /// Closes the current instance and disposes resources used by it - /// - public void Close() - { - Dispose(); - } - - /// - /// Disposes the current instance and resources associated with it - /// - /// Value indicating whether the managed resources should also be disposed - protected virtual void Dispose(bool disposing) - { - if (_isDisposed) - { - return; - } - - if (_connectionFactory != null) - { - DetachFromConnectionEvents(); - } - - if (_feedRecoveryManager != null) - { - _feedRecoveryManager.ProducerDown -= MarkProducerAsDown; - _feedRecoveryManager.ProducerUp -= MarkProducerAsUp; - _feedRecoveryManager.CloseFeed -= OnCloseFeed; - _feedRecoveryManager.EventRecoveryCompleted -= OnEventRecoveryCompleted; - _feedRecoveryManager.Close(); - } - - foreach (var session in Sessions) - { - session.Close(); - } - - EventChangeManager.Stop(); - - if (disposing) - { - try - { - UnityContainer.Dispose(); - } - catch (Exception ex) - { - _log.Warn("An exception has occurred while disposing the feed instance.", ex); - } - } - - _isDisposed = true; - } - /// /// Opens the current feed by opening all created sessions /// @@ -696,6 +641,67 @@ public void Open() } } + /// + public bool IsOpen() + { + return _opened == 1; + } + + /// + /// Closes the current instance and disposes resources used by it + /// + public void Close() + { + Dispose(); + } + + /// + /// Disposes the current instance and resources associated with it + /// + /// Value indicating whether the managed resources should also be disposed + protected virtual void Dispose(bool disposing) + { + if (_isDisposed) + { + return; + } + + if (_connectionFactory != null) + { + DetachFromConnectionEvents(); + } + + if (_feedRecoveryManager != null) + { + _feedRecoveryManager.ProducerDown -= MarkProducerAsDown; + _feedRecoveryManager.ProducerUp -= MarkProducerAsUp; + _feedRecoveryManager.CloseFeed -= OnCloseFeed; + _feedRecoveryManager.EventRecoveryCompleted -= OnEventRecoveryCompleted; + _feedRecoveryManager.Close(); + } + + foreach (var session in Sessions) + { + session.Close(); + } + + EventChangeManager.Stop(); + + if (disposing) + { + try + { + UnityContainer.Dispose(); + } + catch (Exception ex) + { + _log.Warn("An exception has occurred while disposing the feed instance.", ex); + } + } + + _isDisposed = true; + } + private void AttachToConnectionEvents() { if (_connectionFactory != null) diff --git a/src/Sportradar.OddsFeed.SDK.API/IOddsFeedV6.cs b/src/Sportradar.OddsFeed.SDK.API/IOddsFeedV6.cs new file mode 100644 index 0000000..1d48f6c --- /dev/null +++ b/src/Sportradar.OddsFeed.SDK.API/IOddsFeedV6.cs @@ -0,0 +1,17 @@ +/* +* Copyright (C) Sportradar AG. See LICENSE for full license governing this code +*/ + +namespace Sportradar.OddsFeed.SDK.API +{ + /// + /// Represent a root object of the unified odds feed + /// + public interface IOddsFeedV6 : IOddsFeedV5 + { + /// + /// Returns an indicator if the feed instance is opened or not + /// + bool IsOpen(); + } +} diff --git a/src/Sportradar.OddsFeed.SDK.API/ReplayFeed.cs b/src/Sportradar.OddsFeed.SDK.API/ReplayFeed.cs index 9aafc01..456513b 100644 --- a/src/Sportradar.OddsFeed.SDK.API/ReplayFeed.cs +++ b/src/Sportradar.OddsFeed.SDK.API/ReplayFeed.cs @@ -1,8 +1,8 @@ /* * Copyright (C) Sportradar AG. See LICENSE for full license governing this code */ -using Sportradar.OddsFeed.SDK.API.Internal; using Microsoft.Practices.Unity; +using Sportradar.OddsFeed.SDK.API.Internal; namespace Sportradar.OddsFeed.SDK.API { @@ -40,7 +40,7 @@ protected override void InitFeed() return; } base.InitFeed(); - ((ProducerManager) ProducerManager).SetIgnoreRecovery(0); + ((ProducerManager)ProducerManager).SetIgnoreRecovery(0); } } } diff --git a/src/Sportradar.OddsFeed.SDK.API/Sportradar.OddsFeed.SDK.API.csproj b/src/Sportradar.OddsFeed.SDK.API/Sportradar.OddsFeed.SDK.API.csproj index 9a141fb..f033153 100644 --- a/src/Sportradar.OddsFeed.SDK.API/Sportradar.OddsFeed.SDK.API.csproj +++ b/src/Sportradar.OddsFeed.SDK.API/Sportradar.OddsFeed.SDK.API.csproj @@ -173,6 +173,7 @@ +