53 return 0 != value_.bits_.eventsDispatched_;
59 value_.bits_.eventsDispatched_ = state ? 1 : 0;
63 bool ioWaited() const ONIXS_FENICSUST_BIMP_NOEXCEPT
65 return 0 != value_.bits_.ioWaited_;
69 void ioWaited(
bool state) ONIXS_FENICSUST_BIMP_NOEXCEPT
71 value_.bits_.ioWaited_ = state ? 1 : 0;
75 Flags
reserved() const ONIXS_FENICSUST_BIMP_NOEXCEPT
77 return value_.bits_.reserved_;
81 void reserved(Flags flags) ONIXS_FENICSUST_BIMP_NOEXCEPT
83 value_.bits_.reserved_ = flags;
89 Flags eventsDispatched_ : 1;
125 friend struct FeHelper;
203 , spinBeforeIdleTime_(1)
217 return threadAffinity_;
229 return threadAffinity_;
243 threadCount_ = value;
256 return spinBeforeIdleTime_;
262 spinBeforeIdleTime_ = value;
267 UInt32 spinBeforeIdleTime_;
320 class FeedEngineThreadPoolImpl;
321 FeedEngineThreadPoolImpl* impl_;
static NicWatch & service()
Returns watch service.
virtual void onFeedEngineThreadEnd(const FeedEngineThreadPool &)
NetFeedEngineProcessResult process()
NetFeedEngineProcessResult(UInt32 flags) ONIXS_FENICSUST_BIMP_NOEXCEPT
void ioWaited(bool state) ONIXS_FENICSUST_BIMP_NOEXCEPT
Indicates whether processing had to sleep in kernel while checking data availability.
UInt32 spinBeforeIdleTime() const
static UtcWatch & service()
Returns watch service.
void spinBeforeIdleTime(UInt32 value)
Sets redundancySpinTime.
Designed to reflect various aspects of feed engine processing flow.
The given class implements feed engine concept using pool of working threads and standard socket API...
bool eventsDispatched() const ONIXS_FENICSUST_BIMP_NOEXCEPT
Indicates whether feed-related events like data reception or absence have been dispatched.
bool process(FeedEngine &engine)
virtual void onFeedEngineThreadIdle(const FeedEngineThreadPool &, FeedEngineThreadIdle::Reason, UInt32 &)
size_t CpuIndex
Zero-based index of CPU.
const ThreadAffinity & threadAffinity() const
void reserved(Flags flags) ONIXS_FENICSUST_BIMP_NOEXCEPT
Reserved (unused) flags.
FeedEngineThreadPoolSettings()
Represents set of CPU indices.
The given class implements the Feed Engine concept using the Solarlfare ef_vi SDK.
A pool of threads executing feed engine tasks.
Current thread related tasks.
UInt32 Flags
Aliases integral type whose bits are used to indicate flag presence.
virtual void onFeedEngineThreadBegin(const FeedEngineThreadPool &)
virtual ~FeedEngineThreadPoolListener()
bool ioWaited() const ONIXS_FENICSUST_BIMP_NOEXCEPT
Indicates whether processing had to sleep in kernel while checking data availability.
Identifies reasons feed engine threads becomes idle.
The Feed Engine machinery.
UInt32 threadCount() const
class ONIXS_FENICSUST_BIMP_API FeedEngineThreadPool
Flags reserved() const ONIXS_FENICSUST_BIMP_NOEXCEPT
Reserved (unused) flags.
void eventsDispatched(bool state) ONIXS_FENICSUST_BIMP_NOEXCEPT
Indicates whether feed-related events like data reception or absence have been dispatched.
ThreadAffinity & threadAffinity()
void threadCount(UInt32 value)
Sets threadsCount.