diff --git a/CryptoExchange.Net/CryptoExchange.Net.xml b/CryptoExchange.Net/CryptoExchange.Net.xml
index ca429f4..45fcd78 100644
--- a/CryptoExchange.Net/CryptoExchange.Net.xml
+++ b/CryptoExchange.Net/CryptoExchange.Net.xml
@@ -871,6 +871,16 @@
The price of the entry
+
+
+ Interface for order book entries
+
+
+
+
+ Sequence of the update
+
+
Interface for websocket interaction
@@ -1649,16 +1659,6 @@
Buffer entry for order book
-
-
- The first sequence number of the entries
-
-
-
-
- The last sequence number of the entries
-
-
List of asks
@@ -1669,6 +1669,41 @@
List of bids
+
+
+ First update id
+
+
+
+
+ List of asks
+
+
+
+
+ List of bids
+
+
+
+
+ First update id
+
+
+
+
+ Last update id
+
+
+
+
+ List of asks
+
+
+
+
+ List of bids
+
+
Base for order book implementations
@@ -1699,6 +1734,11 @@
The log
+
+
+ If order book is set
+
+
The status of the order book. Order book is up to date when the status is `Synced`
@@ -1722,7 +1762,7 @@
Event when order book was updated, containing the changed bids and asks. Be careful! It can generate a lot of events at high-liquidity markets
-
+
@@ -1815,12 +1855,27 @@
List of asks
List of bids
+
+
+ Update the order book using a single id for an update
+
+
+
+
+
- Update the order book with entries
+ Update the order book using a first/last update id
+
+
+
+
+
+
+
+
+ Update the order book using sequenced entries
- First sequence number
- Last sequence number
List of bids
List of asks
@@ -1829,13 +1884,21 @@
Check and empty the process buffer; see what entries to update the book with
-
+
Update order book with an entry
+ Sequence number of the update
Type of entry
The entry
+
+
+ Wait until the order book has been set
+
+ Max wait time
+
+
Dispose the order book
@@ -2815,148 +2878,5 @@
-
-
- Specifies that is allowed as an input even if the
- corresponding type disallows it.
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Specifies that is disallowed as an input even if the
- corresponding type allows it.
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Specifies that a method that will never return under any circumstance.
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Specifies that the method will not return if the associated
- parameter is passed the specified value.
-
-
-
-
- Gets the condition parameter value.
- Code after the method is considered unreachable by diagnostics if the argument
- to the associated parameter matches this value.
-
-
-
-
- Initializes a new instance of the
- class with the specified parameter value.
-
-
- The condition parameter value.
- Code after the method is considered unreachable by diagnostics if the argument
- to the associated parameter matches this value.
-
-
-
-
- Specifies that an output may be even if the
- corresponding type disallows it.
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Specifies that when a method returns ,
- the parameter may be even if the corresponding type disallows it.
-
-
-
-
- Gets the return value condition.
- If the method returns this value, the associated parameter may be .
-
-
-
-
- Initializes the attribute with the specified return value condition.
-
-
- The return value condition.
- If the method returns this value, the associated parameter may be .
-
-
-
-
- Specifies that an output is not even if the
- corresponding type allows it.
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Specifies that the output will be non- if the
- named parameter is non-.
-
-
-
-
- Gets the associated parameter name.
- The output will be non- if the argument to the
- parameter specified is non-.
-
-
-
-
- Initializes the attribute with the associated parameter name.
-
-
- The associated parameter name.
- The output will be non- if the argument to the
- parameter specified is non-.
-
-
-
-
- Specifies that when a method returns ,
- the parameter will not be even if the corresponding type allows it.
-
-
-
-
- Gets the return value condition.
- If the method returns this value, the associated parameter will not be .
-
-
-
-
- Initializes the attribute with the specified return value condition.
-
-
- The return value condition.
- If the method returns this value, the associated parameter will not be .
-
-
diff --git a/CryptoExchange.Net/Interfaces/ISymbolOrderBookEntry.cs b/CryptoExchange.Net/Interfaces/ISymbolOrderBookEntry.cs
index 419f41a..3aa9f97 100644
--- a/CryptoExchange.Net/Interfaces/ISymbolOrderBookEntry.cs
+++ b/CryptoExchange.Net/Interfaces/ISymbolOrderBookEntry.cs
@@ -14,4 +14,15 @@
///
decimal Price { get; set; }
}
+
+ ///
+ /// Interface for order book entries
+ ///
+ public interface ISymbolOrderSequencedBookEntry: ISymbolOrderBookEntry
+ {
+ ///
+ /// Sequence of the update
+ ///
+ long Sequence { get; set; }
+ }
}
diff --git a/CryptoExchange.Net/OrderBook/ProcessBufferEntry.cs b/CryptoExchange.Net/OrderBook/ProcessBufferEntry.cs
index 397f53a..b5ebfe9 100644
--- a/CryptoExchange.Net/OrderBook/ProcessBufferEntry.cs
+++ b/CryptoExchange.Net/OrderBook/ProcessBufferEntry.cs
@@ -9,13 +9,41 @@ namespace CryptoExchange.Net.OrderBook
public class ProcessBufferEntry
{
///
- /// The first sequence number of the entries
+ /// List of asks
///
- public long FirstSequence { get; set; }
+ public IEnumerable Asks { get; set; } = new List();
///
- /// The last sequence number of the entries
+ /// List of bids
///
- public long LastSequence { get; set; }
+ public IEnumerable Bids { get; set; } = new List();
+ }
+
+ public class ProcessBufferSingleSequenceEntry
+ {
+ ///
+ /// First update id
+ ///
+ public long UpdateId { get; set; }
+ ///
+ /// List of asks
+ ///
+ public IEnumerable Asks { get; set; } = new List();
+ ///
+ /// List of bids
+ ///
+ public IEnumerable Bids { get; set; } = new List();
+ }
+
+ public class ProcessBufferRangeSequenceEntry
+ {
+ ///
+ /// First update id
+ ///
+ public long FirstUpdateId { get; set; }
+ ///
+ /// Last update id
+ ///
+ public long LastUpdateId { get; set; }
///
/// List of asks
///
diff --git a/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs b/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs
index 4597e7d..cc890c8 100644
--- a/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs
+++ b/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs
@@ -19,7 +19,7 @@ namespace CryptoExchange.Net.OrderBook
///
/// The process buffer, used while syncing
///
- protected readonly List processBuffer;
+ protected readonly List