soma-io  5.0.5
soma::DataSourceCapabilities Class Reference

Reading/Writing Capabilities of a FormatReader. More...

#include <soma-io/datasourceinfo/datasourcecapabilities.h>

Collaboration diagram for soma::DataSourceCapabilities:

Public Member Functions

 DataSourceCapabilities ()
 
 DataSourceCapabilities (const DataSourceCapabilities &)
 
virtual ~DataSourceCapabilities ()
 
bool allowsMemoryMapping () const
 
bool isThreadSafe () const
 
bool isOrdered () const
 
bool canSeekVoxel () const
 
bool canSeekLine () const
 
bool canSeekSlice () const
 
bool canSeekVolume () const
 
bool isRandomAccessEfficient () const
 
bool canHandleStrides () const
 
carto::rc_ptr< DataSourcemappableDataSource () const
 
void setMemoryMapping (const bool &boo=true)
 
void setThreadSafe (const bool &boo=true)
 
void setOrdered (const bool &boo=true)
 
void setSeekVoxel (const bool &boo=true)
 
void setSeekLine (const bool &boo=true)
 
void setSeekSlice (const bool &boo=true)
 
void setSeekVolume (const bool &boo=true)
 
void setRandomAccessEfficient (const bool &boo=true)
 
void setHandleStrides (const bool &boo=true)
 
void setDataSource (const carto::rc_ptr< DataSource > ds)
 
bool isInit () const
 Did we initialize the capabilities ? default : false Since a DataSourceInfo can be either fully initialized because of a previous call to DataSourceInfoLoader or be only partially initialized because we just know the header, it is important to know if the value of this object matters or not. More...
 
void setInit (const bool &boo=true)
 
void reset ()
 Sets the whole capabilities to its default value (including isInit() to false ) More...
 

Protected Attributes

unsigned int _capabilities
 From LSB to MSB : More...
 
carto::rc_ptr< DataSource_mds
 In a case where memory mapping is allowed, it is necessary to tell the AllocatorContext which DataSource must be mapped. More...
 

Detailed Description

Reading/Writing Capabilities of a FormatReader.

This object is constructed by the FormatChecker after reading the header. It allows one to give informations about the possible ways to read a volume ( partial reading ... ).

Remarks
Since capabilities may be file-dependant (and not just format- dependant, think of compressed data), they need being stored in the class. The current implementation uses an integer of chosen size so that each capability is written on one bit. If more capabilities must be added, increase the number of bytes of the integer.
See also
DataSourceInfo

Definition at line 59 of file datasourcecapabilities.h.

Constructor & Destructor Documentation

◆ DataSourceCapabilities() [1/2]

soma::DataSourceCapabilities::DataSourceCapabilities ( )

◆ DataSourceCapabilities() [2/2]

soma::DataSourceCapabilities::DataSourceCapabilities ( const DataSourceCapabilities )

◆ ~DataSourceCapabilities()

virtual soma::DataSourceCapabilities::~DataSourceCapabilities ( )
virtual

Member Function Documentation

◆ allowsMemoryMapping()

bool soma::DataSourceCapabilities::allowsMemoryMapping ( ) const

◆ canHandleStrides()

bool soma::DataSourceCapabilities::canHandleStrides ( ) const

◆ canSeekLine()

bool soma::DataSourceCapabilities::canSeekLine ( ) const

◆ canSeekSlice()

bool soma::DataSourceCapabilities::canSeekSlice ( ) const

◆ canSeekVolume()

bool soma::DataSourceCapabilities::canSeekVolume ( ) const

◆ canSeekVoxel()

bool soma::DataSourceCapabilities::canSeekVoxel ( ) const

◆ isInit()

bool soma::DataSourceCapabilities::isInit ( ) const

Did we initialize the capabilities ? default : false Since a DataSourceInfo can be either fully initialized because of a previous call to DataSourceInfoLoader or be only partially initialized because we just know the header, it is important to know if the value of this object matters or not.

each time one of the mutators is called, setInit( true ) is also called.

◆ isOrdered()

bool soma::DataSourceCapabilities::isOrdered ( ) const

◆ isRandomAccessEfficient()

bool soma::DataSourceCapabilities::isRandomAccessEfficient ( ) const

◆ isThreadSafe()

bool soma::DataSourceCapabilities::isThreadSafe ( ) const

◆ mappableDataSource()

carto::rc_ptr<DataSource> soma::DataSourceCapabilities::mappableDataSource ( ) const

◆ reset()

void soma::DataSourceCapabilities::reset ( )

Sets the whole capabilities to its default value (including isInit() to false )

◆ setDataSource()

void soma::DataSourceCapabilities::setDataSource ( const carto::rc_ptr< DataSource ds)

◆ setHandleStrides()

void soma::DataSourceCapabilities::setHandleStrides ( const bool &  boo = true)

◆ setInit()

void soma::DataSourceCapabilities::setInit ( const bool &  boo = true)

◆ setMemoryMapping()

void soma::DataSourceCapabilities::setMemoryMapping ( const bool &  boo = true)

◆ setOrdered()

void soma::DataSourceCapabilities::setOrdered ( const bool &  boo = true)

◆ setRandomAccessEfficient()

void soma::DataSourceCapabilities::setRandomAccessEfficient ( const bool &  boo = true)

◆ setSeekLine()

void soma::DataSourceCapabilities::setSeekLine ( const bool &  boo = true)

◆ setSeekSlice()

void soma::DataSourceCapabilities::setSeekSlice ( const bool &  boo = true)

◆ setSeekVolume()

void soma::DataSourceCapabilities::setSeekVolume ( const bool &  boo = true)

◆ setSeekVoxel()

void soma::DataSourceCapabilities::setSeekVoxel ( const bool &  boo = true)

◆ setThreadSafe()

void soma::DataSourceCapabilities::setThreadSafe ( const bool &  boo = true)

Member Data Documentation

◆ _capabilities

unsigned int soma::DataSourceCapabilities::_capabilities
protected

From LSB to MSB :

  • capabilities_are_init
  • allows_memory_mapping
  • is_thread_safe
  • is_ordered
  • seek_voxel
  • seek_line
  • seek_slice
  • seek_volume
  • is_random_access_efficient
  • handle_strides Default value is [00000000]

Definition at line 125 of file datasourcecapabilities.h.

◆ _mds

carto::rc_ptr<DataSource> soma::DataSourceCapabilities::_mds
protected

In a case where memory mapping is allowed, it is necessary to tell the AllocatorContext which DataSource must be mapped.

Definition at line 128 of file datasourcecapabilities.h.


The documentation for this class was generated from the following file: