CVB.Net 14.0
IndexedStream Class Reference

A stream with a finite number of images, which can also be accessed via an IndexedStream.ImageIndex. More...

Inherits Stream.

Protected Member Functions

override void ObservableAcquisitionLoop ()
 Special implementation taking LoopObservers into account.
 
- Protected Member Functions inherited from Stream
virtual void Dispose (bool disposing)
 IDispose helper function. More...
 
abstract StreamImage MakeStreamImage (IntPtr handle)
 Factory function for creating the returned image from the acquisition engine. More...
 
abstract StreamImage MakeSnapshotImage (IntPtr handle)
 Factory function for creating the returned image from the acquisition engine. More...
 
virtual void ObservableAcquisitionLoop ()
 This is the acquisition loop for Subscribe(IObserver<StreamImage>)d observers. More...
 
void SendCompleteToObservers ()
 Calls IObserver<T>.OnCompleted on all subscribed observers. More...
 
void SendErrorToObservers (Exception error)
 Calls IObserver<T>.OnError(Exception) on all subscribed observers. More...
 
void SendImageToObservers (StreamImage image)
 Calls IObserver<T>.OnNext(T) with the given image . More...
 

Properties

sealed override bool IsIndexed [get]
 Gets whether this is a IndexedStream. More...
 
abstract int ImageCount [get]
 Gets the number of images contained in this stream.
 
abstract int ImageIndex [get, set]
 Gets or sets the index of the current active image. More...
 
bool LoopObservers [get, set]
 Gets or sets whether the Stream.Subscribe(IObserver<StreamImage>)d observers are notified after all images have been delivered once. More...
 
- Properties inherited from Stream
AcquisitionInterface AcquisitionInterface [get, set]
 Gets or sets the acquisition interface to use on this stream. More...
 
Device Parent [get]
 Gets the parent Device.
 
virtual bool IsIndexed [get]
 Gets whether this stream is an IndexedStream.
 
abstract StreamStatistics Statistics [get]
 Gets the available device statistics
 
bool IsRunning [get]
 Gets whether the acquisition is currently active. More...
 
abstract IRingBuffer RingBuffer [get]
 Gets the IRingBuffer interface object if present. More...
 
- Properties inherited from IStream
AcquisitionInterface AcquisitionInterface [get]
 Gets or sets the acquisition interface to use on this stream.
 
bool IsIndexed [get]
 Gets if this stream is indexed (has a fixed amount of data).
 
- Properties inherited from IAcquisition
bool IsRunning [get]
 Gets whether the acquisition is currently active. More...
 
- Properties inherited from IDeviceInterface
Device Parent [get]
 The Device this interface works on.
 

Additional Inherited Members

- Public Member Functions inherited from Stream
void Dispose ()
 IDisposable implementation. More...
 
virtual StreamImage GetSnapshot ()
 Acquires a single image and returns it. More...
 
virtual StreamImage GetTimedSnapshot (UsTimeSpan timeSpan)
 Acquires a single image and returns it. More...
 
virtual StreamImage GetTimedSnapshot (UsTimeSpan timeSpan, out WaitStatus status)
 As GetTimedSnapshot(UsTimeSpan), but does not throw on timeout. More...
 
void Start ()
 Starts the acquisition.
 
virtual StreamImage Wait ()
 Waits for indefinitely for the next acquired image and returns it. More...
 
virtual StreamImage Wait (out WaitStatus status)
 Waits for indefinitely for the next acquired image and returns it. More...
 
virtual StreamImage WaitFor (UsTimeSpan timeSpan)
 Waits for the given timeSpan for the next acquired image. More...
 
virtual StreamImage WaitFor (UsTimeSpan timeSpan, out WaitStatus status)
 As WaitFor(UsTimeSpan), but does not throw on timeout. More...
 
void Stop ()
 Stops the acquisition. More...
 
virtual bool TryStop ()
 Tries to stop the acquisition of images. More...
 
void Abort ()
 Stops the acquisition of images immediately. More...
 
virtual bool TryAbort ()
 Tries to stop the acquisition of images immediately. More...
 
virtual IDisposable Subscribe (IObserver< StreamImage > observer)
 Notifies this stream that the given observer is to receive new image notifications. More...
 
void Start ()
 Start the acquisition.
 
void Stop ()
 Stops the acquisition.
 
void Abort ()
 Stops the acquisition of images immediately.
 
StreamImage GetSnapshot ()
 Acquires a single image and returns it. More...
 
StreamImage GetTimedSnapshot (UsTimeSpan timeSpan)
 Acquires a single image and returns it. More...
 
StreamImage GetTimedSnapshot (UsTimeSpan timeSpan, out WaitStatus status)
 Acquires a single image and returns it. More...
 
void Start ()
 Starts the acquisition of images.
 
StreamImage Wait ()
 Waits infinitely for the next acquired image and returns it. More...
 
StreamImage Wait (out WaitStatus status)
 Waits infinitely for the next acquired image and returns it. More...
 
StreamImage WaitFor (UsTimeSpan timeSpan)
 Waits for the given timeSpan for the next acquired image. More...
 
StreamImage WaitFor (UsTimeSpan timeSpan, out WaitStatus status)
 Waits for the given timeSpan for the next acquired image. More...
 
void Stop ()
 Stops the acquisition of images. More...
 
bool TryStop ()
 Tries to stop the acquisition of images. More...
 
void Abort ()
 Stops the acquisition of images immediately. More...
 
bool TryAbort ()
 Tries to stop the acquisition of images immediately. More...
 
- Static Public Attributes inherited from Stream
static readonly UsTimeSpan MaxTimeoutValue = UsTimeSpan.FromMilliseconds(int.MaxValue)
 Gets the maximal timeout a device normally supports.
 

Detailed Description

A stream with a finite number of images, which can also be accessed via an IndexedStream.ImageIndex.

Property Documentation

◆ ImageIndex

abstract int ImageIndex
getset

Gets or sets the index of the current active image.

The range of possible values is from 0 up to, not including, ImageCount.

>

◆ IsIndexed

sealed override bool IsIndexed
get

Gets whether this is a IndexedStream.

Always true.

Implements IStream.

◆ LoopObservers

bool LoopObservers
getset

Gets or sets whether the Stream.Subscribe(IObserver<StreamImage>)d observers are notified after all images have been delivered once.

If true this stream behaves like a non-indexed stream and repeats playback. If false IObserver<T>.OnCompleted called after the first iteration and acquisition is stopped.

Default is false.