50 : indices_(other.indices_)
104 UInt32 spinBeforeIdleTime_;
116 , spinBeforeIdleTime_(1)
138 return threadAffinity_;
150 return threadAffinity_;
167 threadCount_ = value;
203 return dataWaitTime_;
211 dataWaitTime_ = value;
225 return spinBeforeIdleTime_;
233 spinBeforeIdleTime_ = value;
242 return socketBufferSize_;
250 socketBufferSize_ = value;
269 toStr(str, settings);
362 MultithreadedFeedEngine
380 FeedEngine(
const FeedEngine&);
381 FeedEngine& operator =(
const FeedEngine&);
#define ONIXS_CMESTREAMLINEDMDH_EXPORTED_STRUCT
#define ONIXS_CMESTREAMLINEDMDH_EXPORTED_CLASS_DECL(typeName)
#define ONIXS_CMESTREAMLINEDMDH_EXPORTED_CLASS
#define ONIXS_CMESTREAMLINEDMDH_INTERNAL_CLASS_DECL(typeName)
#define ONIXS_CMESTREAMLINEDMDH_NAMESPACE_BEGIN
#define ONIXS_CMESTREAMLINEDMDH_LTWT_STRUCT
#define ONIXS_CMESTREAMLINEDMDH_NAMESPACE_END
#define ONIXS_CMESTREAMLINEDMDH_LTWT_CLASS
#define ONIXS_CMESTREAMLINEDMDH_EXPORTED
#define ONIXS_CMESTREAMLINEDMDH_NULLPTR
Collection of settings affecting Feed Engine behavior.
void threadCount(UInt32 value)
Sets threadsCount.
UInt32 spinBeforeIdleTime() const
Defines amount of time Feed Engine keeps cycling before going to sleep when no useful activity can be...
FeedEngineSettings()
Initializes options with default values.
ThreadAffinity & threadAffinity()
Defines set of CPUs allowed for each working thread to be executed on while processing market data by...
const ThreadAffinity & threadAffinity() const
Defines set of CPUs allowed for each working thread to be executed on while processing market data by...
void socketBufferSize(UInt32 value)
Sets udpSocketBufferSize.
~FeedEngineSettings()
Cleans everything up.
void spinBeforeIdleTime(UInt32 value)
Sets redundancySpinTime.
void watch(WatchService &watch)
Watch service to be used by Feed Engine.
UInt32 dataWaitTime() const
Defines amount of time Feed Engine spends on socket waiting for I/O while running master processing l...
UInt32 threadCount() const
Number of working threads to be used by feed engine.
UInt32 socketBufferSize() const
Defines size of receiving buffer in bytes for sockets.
void dataWaitTime(UInt32 value)
Sets dataWaitTime.
WatchService & watch() const
Watch service to be used by Feed Engine.
Manages processing machinery for market data received from feeds.
const FeedEngineSettings & settings() const
Settings used define behavior of given instance.
friend class MultithreadedFeedEngine
FeedEngine(const FeedEngineSettings &, FeedEngineListener *=nullptr)
Initializes engine with given configuration.
~FeedEngine()
Destructs given instance.
Represents set of CPU indices.
ThreadAffinity()
Initializes empty set.
~ThreadAffinity()
Utilizes all the resources.
TinySet< CpuIndex > CpuIndices
Alias for collection of CPU indices.
ThreadAffinity(const ThreadAffinity &other)
Initializes as copy of other set.
CpuIndices & cpus()
Collection of CPU indices.
const CpuIndices & cpus() const
Read-only access to index collection.
Class implementing set optimized for storing small number of items.
char Char
Character type alias.
Int32 CpuIndex
Zero-based index of CPU.
void toStr(std::string &str, const Decimal &number)
Listener for thread-related events.
virtual void onFeedEngineThreadIssue(const FeedEngine &, const Char *)
Invoked if working thread experiences an issue while processing its tasks.
virtual void onFeedEngineThreadBegin(const FeedEngine &)
Member invoked by feed engine when a new processing thread is spawned.
virtual void onFeedEngineThreadEnd(const FeedEngine &)
Member is invoked by feed engine when processing thread is about to end.
virtual void onFeedEngineThreadIdle(const FeedEngine &, FeedEngineThreadIdle::Reason, UInt32 &)
Is called when feed engine's thread is idle.
Identifies reasons feed engine threads becomes idle.
@ DataWaitTimeout
Thread waited for incoming data using corresponding I/O operations (like 'select') and exited waiting...
@ Redundant
Thread entered idle state due to absence of any data and while other threads are waiting for new inco...