6#include <iolink/FlagSet.h>
7#include <iolink/view/Extension.h>
66extern template class IOLINK_API_IMPORT FlagSet<ParallelAccessCapability>;
94 static constexpr size_t EXTENSION_ID = 0x2;
102 inline static std::shared_ptr<ParallelAccessExtension>
cast(
const std::shared_ptr<Extension>& extension)
104 return std::dynamic_pointer_cast<ParallelAccessExtension>(extension);
Parent class for all views extensions.
Definition Extension.h:25
Template class to handle a flags system from an enum.
Definition FlagSet.h:43
ImageView extension to give information about how to efficiently access it in a multi-threaded enviro...
Definition ParallelAccessExtension.h:89
bool support(ParallelAccessCapabilitySet flags)
Checks if the view supports the given capabilities.
Definition ParallelAccessExtension.h:115
virtual ParallelAccessCapabilitySet capabilities() const =0
Return the parallel-access capabilities of this view.
std::string toString() const
String representation of the extension.
static std::shared_ptr< ParallelAccessExtension > cast(const std::shared_ptr< Extension > &extension)
Upcast a generic extension to this specific type.
Definition ParallelAccessExtension.h:102
All IOLink symbols are enclosed in this namespace.
Definition ArrayX.h:8
ParallelAccessCapability
Define multi-access capabilities of an ImageView.
Definition ParallelAccessExtension.h:16
@ THREAD_SAFE
Image can be multi-accessed (READ and/or WRITE) without any race condition, but with no control on th...
@ PARALLEL_TILE_WRITE
Hints that writing tiles in parallel will provide performance benefits, But remember that parallel ca...
@ PARALLEL_TILE_READ
Hints that reading tiles in parallel will provide performance benefits.
@ PARALLEL_WRITE
Hints that regions of the image can be written in parallel with performance benefits.
@ PARALLEL_READ
Hints that regions of the image can be read in parallel with performance benefits.