Infront Data Manager Connect Client (.NET)
|
Inherits Gevasys.DataCore.Client.IPushClient.
Inherited by Examples.SamplePushClient, and Gevasys.DataCore.Tools.Cache.PriceCache.
Public Member Functions | |
long | GetCountUpdates () |
String | GetName () |
void | Start () |
void | AddNewData (List< UpdateMessage > newUpdates) |
void | Run () |
For internal use only. More... | |
void | Stop () |
abstract void | ProcessUpdates (List< UpdateMessage > updates) |
abstract void | Update (DataCore.Core.IConsumer source, ConsumerStateChangedEventArgs arg) |
Abstract method that must be implemented in derived classes to recive status notifications for the underlying consumers. More... | |
![]() | |
void | Update (IConsumer source, ConsumerStateChangedEventArgs arg) |
Method for processing incoming status notifications for a Consumer. More... | |
Protected Member Functions | |
PushClient (String name) | |
Properties | |
string | Name [get] |
Name of the push client. The name is also used as the name of the push client thread to make identifying your thread during debugging easier. More... | |
Represents the abstract base class for all push clients. Derive from this class to create a push client that receives data.
Any push client can be attached to one StreamingPartitioner or to one or more ConsumerStore .
The processing of updates is done in two stages.
1. All incoming updates from the attached StreamingPartioner or ConsumerStore are stored in an internal
List to physically separate the updates for a specific push client from the owning StreamingPartitioner or ConsumerStore.
2. All in stage 1 stored updates are moved to a second ArrayDeque and then a call to processUpdates with this updates is made.
This stage is executed in a separate Thread so that your processing code for updates will never block incoming updates from any
StreamingPartitioner or ConsumerStore and so any update is strictly separated from the IO layer.
Attention!
Because user specific code for processing updates in or after the processUpdates method does not block the IO layer and the buffer
for the IO layer is not limited in size(but limited by the available system memory), you can run into a situation where your application
terminates with an OutOfMemoryError exception, and/or any update that is processed by user specific code
is effectively delayed. To avoid this situation ensure that your code is fast enough to process all incoming updates.
Any instances of this class are thread safe.
|
inlineprotected |
Creates a new push client with the given name. The given name is also
used to build the name for the thread for this push client so that <br>
you can identify it during debugging.
|
inline |
Let's an IConsumer add all new updates to an internal List for later and independent
processing of updates.
Implements Gevasys.DataCore.Client.IPushClient.
|
inline |
Gets the count of received updates for this client.
|
inline |
Gets the name of this push client.
|
pure virtual |
Abstract method which must be overridden in derived classes. This is the
entry point for user specific code for processing updates.
Implements Gevasys.DataCore.Client.IPushClient.
Implemented in Gevasys.DataCore.Tools.Cache.PriceCache.
|
inline |
For internal use only.
Implements Gevasys.DataCore.Core.IRunnable.
|
inline |
Creates and starts the thread for this push client.
|
inline |
Stops the client.
Implements Gevasys.DataCore.Core.IRunnable.
|
pure virtual |
Abstract method that must be implemented in derived classes to recive status notifications for the underlying consumers.
|
get |
Name of the push client. The name is also used as the name of the push client thread to make identifying your thread during debugging easier.
Copyright (C) 2021 Infront Financial Technology GmbH
Mainzer Landstrasse 178 – 190
60327 Frankfurt am Main
Infront Data Manager Connect V4.1