Medical Imaging Interaction Toolkit  2024.06.99-31d3c0df
Medical Imaging Interaction Toolkit
mitk::AbstractFileReader Class Referenceabstract

Base class for creating mitk::BaseData objects from files or streams. More...

#include <mitkAbstractFileReader.h>

Inheritance diagram for mitk::AbstractFileReader:
Collaboration diagram for mitk::AbstractFileReader:


class  InputStream
 An input stream wrapper. More...

Public Member Functions

void SetInput (const std::string &location) override
 Set the input location. More...
void SetInput (const std::string &location, std::istream *is) override
 Set an input stream to read from. More...
std::string GetInputLocation () const override
 Get the current input location. More...
std::istream * GetInputStream () const override
 Get the input stream. More...
MimeType GetRegisteredMimeType () const
std::vector< itk::SmartPointer< BaseData > > Read () override
 Reads a path or stream and creates a list of BaseData objects. More...
DataStorage::SetOfObjects::Pointer Read (mitk::DataStorage &ds) override
 Reads the specified file or input stream, loading its contents into the provided DataStorage. More...
ConfidenceLevel GetConfidenceLevel () const override
 The confidence level of the reader or writer implementation. More...
Options GetOptions () const override
 returns a list of the supported options More...
us::Any GetOption (const std::string &name) const override
void SetOptions (const Options &options) override
void SetOption (const std::string &name, const us::Any &value) override
void AddProgressCallback (const ProgressCallback &callback) override
void RemoveProgressCallback (const ProgressCallback &callback) override
us::ServiceRegistration< IFileReaderRegisterService (us::ModuleContext *context=us::GetModuleContext())
void UnregisterService ()
std::vector< std::string > GetReadFiles () override
void SetProperties (const PropertyList *properties) override
 Optionally provide base data properties as a source of meta data. More...
- Public Member Functions inherited from mitk::IFileReader
 ~IFileReader () override
virtual ~IFileReader ()
- Public Member Functions inherited from mitk::IFileIO
virtual ~IFileIO ()

Protected Member Functions

 AbstractFileReader ()
 ~AbstractFileReader () override
 AbstractFileReader (const AbstractFileReader &other)
 AbstractFileReader (const CustomMimeType &mimeType, const std::string &description)
virtual std::vector< itk::SmartPointer< BaseData > > DoRead ()=0
virtual us::ServiceProperties GetServiceProperties () const
virtual us::ServiceRegistration< CustomMimeTypeRegisterMimeType (us::ModuleContext *context)
void SetMimeType (const CustomMimeType &mimeType)
const CustomMimeTypeGetMimeType () const
void SetMimeTypePrefix (const std::string &prefix)
std::string GetMimeTypePrefix () const
void SetDescription (const std::string &description)
std::string GetDescription () const
void SetDefaultOptions (const Options &defaultOptions)
Options GetDefaultOptions () const
void SetRanking (int ranking)
 Set the service ranking for this file reader. More...
int GetRanking () const
std::string GetLocalFileName () const
 Get a local file name for reading. More...
virtual void SetDefaultDataNodeProperties (DataNode *node, const std::string &filePath)
const PropertyListGetProperties () const override

Protected Attributes

std::vector< std::string > m_ReadFiles

Additional Inherited Members

- Public Types inherited from mitk::IFileIO
enum  ConfidenceLevel { Unsupported, PartiallySupported, Supported }
 A confidence level describing the confidence of the reader or writer in handling the given data. More...
typedef std::map< std::string, us::AnyOptions
 Options for reading or writing data. More...
typedef mitk::MessageAbstractDelegate1< float > ProgressCallback
- Static Public Member Functions inherited from mitk::IFileIO
static std::string PROP_DESCRIPTION ()
 Service property name for a description. More...
static std::string PROP_MIMETYPE ()
 Service property name for the mime-type associated with this file writer. More...

Detailed Description

Base class for creating mitk::BaseData objects from files or streams.

Definition at line 42 of file mitkAbstractFileReader.h.

Constructor & Destructor Documentation

◆ AbstractFileReader() [1/3]

mitk::AbstractFileReader::AbstractFileReader ( )

◆ ~AbstractFileReader()

mitk::AbstractFileReader::~AbstractFileReader ( )

◆ AbstractFileReader() [2/3]

mitk::AbstractFileReader::AbstractFileReader ( const AbstractFileReader other)

◆ AbstractFileReader() [3/3]

mitk::AbstractFileReader::AbstractFileReader ( const CustomMimeType mimeType,
const std::string &  description 

Associate this reader instance with the given MIME type.

If mimeType does not provide an extension list, an already registered mime-type object is used. Otherwise, the first entry in the extensions list is used to construct a mime-type name and register it as a new CustomMimeType service object in the default implementation of RegisterMimeType().

mimeTypeThe mime type this reader can read.
descriptionA human readable description of this reader.
std::invalid_argumentif mimeType is empty.
See also

Member Function Documentation

◆ AddProgressCallback()

void mitk::AbstractFileReader::AddProgressCallback ( const ProgressCallback callback)

Implements mitk::IFileIO.

◆ DoRead()

virtual std::vector<itk::SmartPointer<BaseData> > mitk::AbstractFileReader::DoRead ( )
protectedpure virtual

◆ GetConfidenceLevel()

ConfidenceLevel mitk::AbstractFileReader::GetConfidenceLevel ( ) const

The confidence level of the reader or writer implementation.

Confidence level.

The level is used to rank multiple competing implementations.

Implements mitk::IFileIO.

Reimplemented in mitk::LegacyLabelSetImageIO, and mitk::BaseDICOMReaderService.

Referenced by mitk::AbstractFileIOReader::GetReaderConfidenceLevel().

◆ GetDefaultOptions()

Options mitk::AbstractFileReader::GetDefaultOptions ( ) const

◆ GetDescription()

std::string mitk::AbstractFileReader::GetDescription ( ) const

◆ GetInputLocation()

std::string mitk::AbstractFileReader::GetInputLocation ( ) const

Get the current input location.

The input location.

Implements mitk::IFileReader.

◆ GetInputStream()

std::istream* mitk::AbstractFileReader::GetInputStream ( ) const

Get the input stream.

The currently set input stream.

Implements mitk::IFileReader.

◆ GetLocalFileName()

std::string mitk::AbstractFileReader::GetLocalFileName ( ) const

Get a local file name for reading.

This is a convenience method for readers which cannot work natively with input streams. If no input stream has been been set, this method just returns the result of GetLocation(). However, if SetLocation(std::string, std::istream*) has been called with a non-null input stream, this method writes the contents of the stream to a temporary file and returns the name of the temporary file.

The temporary file is deleted when either SetLocation(std::string, std::istream*) is called again with a different input stream or the destructor of this class is called.

This method does not validate file names set via SetInput(std::string).

A file path in the local file-system for reading.

◆ GetMimeType()

const CustomMimeType* mitk::AbstractFileReader::GetMimeType ( ) const
The mime-type this reader can handle.

◆ GetMimeTypePrefix()

std::string mitk::AbstractFileReader::GetMimeTypePrefix ( ) const

◆ GetOption()

us::Any mitk::AbstractFileReader::GetOption ( const std::string &  name) const

Implements mitk::IFileIO.

◆ GetOptions()

Options mitk::AbstractFileReader::GetOptions ( ) const

returns a list of the supported options

Options are strings that are treated as flags when passed to the write method.

Implements mitk::IFileIO.

◆ GetProperties()

const PropertyList* mitk::AbstractFileReader::GetProperties ( ) const
See also

Implements mitk::IFileReader.

◆ GetRanking()

int mitk::AbstractFileReader::GetRanking ( ) const

◆ GetReadFiles()

std::vector< std::string > mitk::AbstractFileReader::GetReadFiles ( )
A list of files that were loaded during the last call of Read. Has to be filled by the actual reader class.

Implements mitk::IFileReader.

◆ GetRegisteredMimeType()

MimeType mitk::AbstractFileReader::GetRegisteredMimeType ( ) const

◆ GetServiceProperties()

virtual us::ServiceProperties mitk::AbstractFileReader::GetServiceProperties ( ) const

◆ Read() [1/2]

std::vector<itk::SmartPointer<BaseData> > mitk::AbstractFileReader::Read ( )

Reads a path or stream and creates a list of BaseData objects.

The default implementation of this method (1) calls DoRead() (Implement the specific reader operation there) and (2) it adds general meta information about the loading process.

Implements mitk::IFileReader.

◆ Read() [2/2]

DataStorage::SetOfObjects::Pointer mitk::AbstractFileReader::Read ( mitk::DataStorage ds)

Reads the specified file or input stream, loading its contents into the provided DataStorage.

dsThe DataStorage to which the data is added.
The set of added DataNodes to ds.

This method may be overridden by implementations to create or reconstructed a hierarchy of mitk::DataNode instances in the provided mitk::DataStorage.


Implements mitk::IFileReader.

◆ RegisterMimeType()

virtual us::ServiceRegistration<CustomMimeType> mitk::AbstractFileReader::RegisterMimeType ( us::ModuleContext *  context)

Registers a new CustomMimeType service object.

This method is called from RegisterService and the default implementation registers a new mime-type service object if all of the following conditions are true:

  • TODO
std::invalid_argumentif context is nullptr.

◆ RegisterService()

us::ServiceRegistration<IFileReader> mitk::AbstractFileReader::RegisterService ( us::ModuleContext *  context = us::GetModuleContext())

Associate this reader with the MIME type returned by the current IMimeTypeProvider service for the provided extension if the MIME type exists, otherwise registers a new MIME type when RegisterService() is called.

If no MIME type for extension is already registered, a call to RegisterService() will register a new MIME type and associate this reader instance with it. The MIME type id can be set via SetMimeType() or it will be auto-generated using extension, having the form "application/vnd.mitk.<extension>".


◆ RemoveProgressCallback()

void mitk::AbstractFileReader::RemoveProgressCallback ( const ProgressCallback callback)

Implements mitk::IFileIO.

◆ SetDefaultDataNodeProperties()

virtual void mitk::AbstractFileReader::SetDefaultDataNodeProperties ( DataNode node,
const std::string &  filePath 

◆ SetDefaultOptions()

void mitk::AbstractFileReader::SetDefaultOptions ( const Options defaultOptions)

◆ SetDescription()

void mitk::AbstractFileReader::SetDescription ( const std::string &  description)

◆ SetInput() [1/2]

void mitk::AbstractFileReader::SetInput ( const std::string &  location)

Set the input location.

locationThe file name to read from.

Implements mitk::IFileReader.

◆ SetInput() [2/2]

void mitk::AbstractFileReader::SetInput ( const std::string &  location,
std::istream *  is 

Set an input stream to read from.

locationA custom label for the input stream.
isThe input stream.

If is is nullptr, this clears the current input stream and location is interpreted as a file-system path. Otherwise, location is a custom label describing the input stream is.

Implements mitk::IFileReader.

◆ SetMimeType()

void mitk::AbstractFileReader::SetMimeType ( const CustomMimeType mimeType)

◆ SetMimeTypePrefix()

void mitk::AbstractFileReader::SetMimeTypePrefix ( const std::string &  prefix)

◆ SetOption()

void mitk::AbstractFileReader::SetOption ( const std::string &  name,
const us::Any value 

Implements mitk::IFileIO.

◆ SetOptions()

void mitk::AbstractFileReader::SetOptions ( const Options options)

Implements mitk::IFileIO.

◆ SetProperties()

void mitk::AbstractFileReader::SetProperties ( const PropertyList properties)

Optionally provide base data properties as a source of meta data.

The purpose of this method is not to preset the base data property list of the read data but to provide access to meta data of previous read operations that may be beneficial for the new read operation.

A typical usecase may occur when reading files from an MITK scene file in which case base data properties are already provided in addition to the actual data file. If such a data file references other files relative to its original location on the filesystem, the original location can be retrieved from the base data properties. In this scenario, GetInputLocation() would return a path within a temporary directory in which the scene file has been extracted. This is not the intended base path for searching referenced external data files.

Implements mitk::IFileReader.

◆ SetRanking()

void mitk::AbstractFileReader::SetRanking ( int  ranking)

Set the service ranking for this file reader.

Default is zero and should only be chosen differently for a reason. The ranking is used to determine which reader to use if several equivalent readers have been found. It may be used to replace a default reader from MITK in your own project. E.g. if you want to use your own reader for nrrd files instead of the default, implement it and give it a higher ranking than zero.

◆ UnregisterService()

void mitk::AbstractFileReader::UnregisterService ( )

Member Data Documentation

◆ m_ReadFiles

std::vector< std::string > mitk::AbstractFileReader::m_ReadFiles

Definition at line 230 of file mitkAbstractFileReader.h.

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