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 @@
+