BufferingIntervalStreamProbe
A probe that buffers a bufferingStream and emits one measurement per interval.
The interval is IntervalSamplingConfiguration.interval. Subclasses implement bufferingStream, onSamplingData (called per event) and getMeasurement (called per interval).
Unlike BufferingPeriodicStreamProbe, it listens to bufferingStream all the time while resumed, not only in sampling windows.
- Inheritance
-
- Object
- AbstractExecutor<
Measure> - Probe
- StreamProbe
- BufferingIntervalStreamProbe
Constructors
BufferingIntervalStreamProbe
Properties
bufferingStream
The stream of events to buffer. Implemented by subclasses.
samplingConfiguration
The sampling configuration for this probe.
Configuration is obtained in the following order:
- from the Measure.overrideSamplingConfiguration
- from the DeviceConfiguration.defaultSamplingConfiguration of the deployment
- from the DeviceConfiguration.dataTypeSamplingSchemes of the static device configuration
- from the SamplingPackage.samplingSchemes of the sampling packages
Returns null in case no configuration is found.
See also the section on Sampling schemes and configurations in the CARP Core Framework. In addition to CARP Core, CARP Mobile Sensing also supports sampling schemes in the sampling packages, which are used as the 4th possible configuration in the list above.
Methods
getMeasurement
Returns the Measurement for the data buffered since the last call. Called every interval. Implemented by subclasses.
Can return null if no data is available. Can return an Error if an error occurs.
onPause
Called by pause. Returns true if successfully paused.
If false, the state is not changed.
onResume
Called by resume. Returns true if successfully resumed.
If false, the executor moves to ExecutorState.PausedButShouldBeResumed.
onSamplingData
- dynamic event
Called for each event on bufferingStream; buffers it.