StreamSubscription

StreamSubscription

StreamSubscription

More…

Inherits from VariantStreamSubscription

Public Functions

Name
StreamSubscription(DataStream< T > * stream)
~StreamSubscription() override
std::optional< T >next()
Obtain next element from stream, block in case there is no new element.
std::optional< T >peekNext()
Obtain the next stream element if there is any, otherwise return std::nullopt This function behaves the same as next(), but does return immediately without blocking. To see if the stream as ended, check the active() property on this subscription.
virtual boolcallIfNextVar(const ProcessVarFn & fn) override
Call function on the next element, if there is any.
virtual intdataTypeId() const override
virtual QStringdataTypeName() const override
virtual QHash< QString, QVariant >metadata() const override
virtual QVariantmetadataValue(const QString & key, const QVariant & defaultValue =QVariant()) const override
virtual QVariantmetadataValue(CommonMetadataKey key, const QVariant & defaultValue =QVariant()) const override
virtual boolunsubscribe() override
virtual boolactive() const override
virtual intenableNotify() override
Enable notifiucations on this stream subscription.
virtual voiddisableNotify() override
Disable notifications via eventFD.
virtual voidsuspend() override
Stop receiving data, but do not unsubscribe from the stream.
virtual voidresume() override
Resume data transmission, reverses suspend()
virtual voidclearPending() override
Clear all pending data from the subscription.
virtual size_tapproxPendingCount() const override
virtual boolhasPending() const override
uintthrottleValue() const
uintretrieveApproxSkippedElements()
virtual voidsetThrottleItemsPerSec(uint itemsPerSec, bool allowMore =true) override
Set a throttle on the output frequency of this subscription By setting a positive integer value, the output of this subscription is effectively limited to the given integer value per second. This will result in some values being thrown away. By setting a throttle value of 0, all output is passed through and no limits apply. Internally, the throttle value is represented as the minimum needed time in microseconds between elements. This effectively means you can not throttle a connection over 1000000 items/sec.
virtual voidforcePushNullopt() override

Additional inherited members

Public Functions inherited from VariantStreamSubscription

Name
virtual~VariantStreamSubscription()

Detailed Description

template <typename T >
class StreamSubscription;

Public Functions Documentation

function StreamSubscription

inline explicit StreamSubscription(
    DataStream< T > * stream
)

function ~StreamSubscription

inline ~StreamSubscription() override

function next

inline std::optional< T > next()

Obtain next element from stream, block in case there is no new element.

Return: The obtained value, or std::nullopt in case the stream ended.

function peekNext

inline std::optional< T > peekNext()

Obtain the next stream element if there is any, otherwise return std::nullopt This function behaves the same as next(), but does return immediately without blocking. To see if the stream as ended, check the active() property on this subscription.

function callIfNextVar

inline virtual bool callIfNextVar(
    const ProcessVarFn & fn
) override

Call function on the next element, if there is any.

Parameters:

  • fn The function to call with the next element.

Return: True if an element was processed, false if there was no element.

Reimplements: VariantStreamSubscription::callIfNextVar

function dataTypeId

inline virtual int dataTypeId() const override

Reimplements: VariantStreamSubscription::dataTypeId

function dataTypeName

inline virtual QString dataTypeName() const override

Reimplements: VariantStreamSubscription::dataTypeName

function metadata

inline virtual QHash< QString, QVariant > metadata() const override

Reimplements: VariantStreamSubscription::metadata

function metadataValue

inline virtual QVariant metadataValue(
    const QString & key,
    const QVariant & defaultValue =QVariant()
) const override

Reimplements: VariantStreamSubscription::metadataValue

function metadataValue

inline virtual QVariant metadataValue(
    CommonMetadataKey key,
    const QVariant & defaultValue =QVariant()
) const override

Reimplements: VariantStreamSubscription::metadataValue

function unsubscribe

inline virtual bool unsubscribe() override

Reimplements: VariantStreamSubscription::unsubscribe

function active

inline virtual bool active() const override

Reimplements: VariantStreamSubscription::active

function enableNotify

inline virtual int enableNotify() override

Enable notifiucations on this stream subscription.

Return: An eventfd file descriptor that is written to when new data is received.

Reimplements: VariantStreamSubscription::enableNotify

function disableNotify

inline virtual void disableNotify() override

Disable notifications via eventFD.

Reimplements: VariantStreamSubscription::disableNotify

Do not disable notifications unless you know for sure that nothing is listening on this subscription anymore.

function suspend

inline virtual void suspend() override

Stop receiving data, but do not unsubscribe from the stream.

Reimplements: VariantStreamSubscription::suspend

function resume

inline virtual void resume() override

Resume data transmission, reverses suspend()

Reimplements: VariantStreamSubscription::resume

function clearPending

inline virtual void clearPending() override

Clear all pending data from the subscription.

Reimplements: VariantStreamSubscription::clearPending

function approxPendingCount

inline virtual size_t approxPendingCount() const override

Reimplements: VariantStreamSubscription::approxPendingCount

function hasPending

inline virtual bool hasPending() const override

Reimplements: VariantStreamSubscription::hasPending

function throttleValue

inline uint throttleValue() const

function retrieveApproxSkippedElements

inline uint retrieveApproxSkippedElements()

function setThrottleItemsPerSec

inline virtual void setThrottleItemsPerSec(
    uint itemsPerSec,
    bool allowMore =true
) override

Set a throttle on the output frequency of this subscription By setting a positive integer value, the output of this subscription is effectively limited to the given integer value per second. This will result in some values being thrown away. By setting a throttle value of 0, all output is passed through and no limits apply. Internally, the throttle value is represented as the minimum needed time in microseconds between elements. This effectively means you can not throttle a connection over 1000000 items/sec.

Reimplements: VariantStreamSubscription::setThrottleItemsPerSec

function forcePushNullopt

inline virtual void forcePushNullopt() override

Reimplements: VariantStreamSubscription::forcePushNullopt


Updated on 2024-09-05 at 17:39:59 +0000