Medical Imaging Interaction Toolkit  2026.06.00
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:

Classes

class  InputStream
 An input stream wrapper for reader implementations. More...
 

Public Member Functions

void SetInput (const std::string &location) override
 Set the input file path, clearing any previously set input stream. More...
 
void SetInput (const std::string &location, std::istream *is) override
 Set an input stream and associated location label. More...
 
std::string GetInputLocation () const override
 Get the current input location. More...
 
std::istream * GetInputStream () const override
 Get the current input stream. More...
 
MimeType GetRegisteredMimeType () const
 Get the mime-type that was registered for this reader. More...
 
std::vector< itk::SmartPointer< BaseData > > Read () override
 Read data and create a list of BaseData objects. More...
 
DataStorage::SetOfObjects::Pointer Read (mitk::DataStorage &ds) override
 Read data and add it to the given DataStorage. More...
 
ConfidenceLevel GetConfidenceLevel () const override
 Determine confidence for reading the current input. More...
 
Options GetOptions () const override
 Get the current option values. More...
 
us::Any GetOption (const std::string &name) const override
 Get the value of a specific option. More...
 
void SetOptions (const Options &options) override
 Set multiple options at once. More...
 
void SetOption (const std::string &name, const us::Any &value) override
 Set a single option value. More...
 
void AddProgressCallback (const ProgressCallback &callback) override
 Register a progress callback. More...
 
void RemoveProgressCallback (const ProgressCallback &callback) override
 Remove a previously registered progress callback. More...
 
us::ServiceRegistration< IFileReader > RegisterService (us::ModuleContext *context=us::GetModuleContext())
 Register this reader as a CppMicroServices service. More...
 
void UnregisterService ()
 Unregister this reader from the CppMicroServices registry. More...
 
std::vector< std::string > GetReadFiles () override
 Get the list of files consumed during the last Read() call. More...
 
void SetProperties (const PropertyList *properties) override
 Set base data properties as a source of meta data for reading. 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 ()
 Default constructor. More...
 
 ~AbstractFileReader () override
 
 AbstractFileReader (const AbstractFileReader &other)
 Copy constructor. More...
 
 AbstractFileReader (const CustomMimeType &mimeType, const std::string &description)
 Associate this reader instance with the given MIME type. More...
 
virtual std::vector< itk::SmartPointer< BaseData > > DoRead ()=0
 Perform the actual reading operation. More...
 
virtual us::ServiceProperties GetServiceProperties () const
 Get the service properties for registration. More...
 
virtual us::ServiceRegistration< CustomMimeType > RegisterMimeType (us::ModuleContext *context)
 Register a new CustomMimeType service object. More...
 
void SetMimeType (const CustomMimeType &mimeType)
 Set the MIME type this reader can handle. More...
 
const CustomMimeType * GetMimeType () const
 Get the MIME type this reader can handle. More...
 
void SetMimeTypePrefix (const std::string &prefix)
 Set the prefix used for auto-generated MIME type names. More...
 
std::string GetMimeTypePrefix () const
 Get the current MIME type name prefix. More...
 
void SetDescription (const std::string &description)
 Set the human-readable description of this reader. More...
 
std::string GetDescription () const
 Get the human-readable description of this reader. More...
 
void SetDefaultOptions (const Options &defaultOptions)
 Set the default options for this reader. More...
 
Options GetDefaultOptions () const
 Get the default options for this reader. More...
 
void SetRanking (int ranking)
 Set the service ranking for this file reader. More...
 
int GetRanking () const
 Get the service ranking for this file reader. More...
 
std::string GetLocalFileName () const
 Get a local file name for reading. More...
 
virtual void SetDefaultDataNodeProperties (DataNode *node, const std::string &filePath)
 Set default properties on a DataNode after reading. More...
 
const PropertyList * GetProperties () const override
 Get the properties set via SetProperties(). More...
 

Protected Attributes

std::vector< std::string > m_ReadFiles
 List of files consumed during the last Read() call. Must be filled by DoRead(). More...
 

Additional Inherited Members

- Public Types inherited from mitk::IFileIO
enum  ConfidenceLevel { Unsupported , PartiallySupported , Supported }
 A confidence level describing the reader's or writer's ability to handle the given data or file format. More...
 
typedef std::map< std::string, us::Any > Options
 Options for reading or writing data. More...
 
typedef mitk::MessageAbstractDelegate1< float > ProgressCallback
 Callback delegate type for progress reporting. More...
 
- Static Public Member Functions inherited from mitk::IFileIO
static std::string PROP_DESCRIPTION ()
 Service property name for a human-readable description. More...
 
static std::string PROP_MIMETYPE ()
 Service property name for the mime-type associated with this reader or writer. More...
 

Detailed Description

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

AbstractFileReader provides the default implementation of the IFileReader interface. Subclasses only need to implement DoRead() and Clone(). The base class handles service registration via CppMicroServices, mime-type management, option handling, and progress callbacks.

See also
IFileReader
AbstractFileIO
AbstractFileWriter
FileReaderSelector

Definition at line 53 of file mitkAbstractFileReader.h.

Constructor & Destructor Documentation

◆ AbstractFileReader() [1/3]

mitk::AbstractFileReader::AbstractFileReader ( )
protected

Default constructor.

◆ ~AbstractFileReader()

mitk::AbstractFileReader::~AbstractFileReader ( )
overrideprotected

◆ AbstractFileReader() [2/3]

mitk::AbstractFileReader::AbstractFileReader ( const AbstractFileReader &  other)
protected

Copy constructor.

Parameters
[in]otherThe reader to copy from.

◆ AbstractFileReader() [3/3]

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

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().

Parameters
[in]mimeTypeThe mime-type this reader can read.
[in]descriptionA human-readable description of this reader.
Exceptions
std::invalid_argumentif mimeType is empty.
See also
RegisterService()

Member Function Documentation

◆ AddProgressCallback()

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

Register a progress callback.

Parameters
[in]callbackThe callback delegate to add.

Implements mitk::IFileIO.

◆ DoRead()

◆ GetConfidenceLevel()

ConfidenceLevel mitk::AbstractFileReader::GetConfidenceLevel ( ) const
overridevirtual

Determine confidence for reading the current input.

Returns
Supported if the input stream is valid or the input file exists, Unsupported otherwise.

Implements mitk::IFileIO.

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

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

◆ GetDefaultOptions()

Options mitk::AbstractFileReader::GetDefaultOptions ( ) const
protected

Get the default options for this reader.

Returns
A map of option names to default values.

◆ GetDescription()

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

Get the human-readable description of this reader.

Returns
The description string.

◆ GetInputLocation()

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

Get the current input location.

Returns
The file path or label set via SetInput().

Implements mitk::IFileReader.

◆ GetInputStream()

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

Get the current input stream.

Returns
The input stream, or nullptr if reading from a file path.

Implements mitk::IFileReader.

◆ GetLocalFileName()

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

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 set, this method returns the result of GetInputLocation(). If an input stream was set via SetInput(std::string, std::istream*), this method writes the stream contents to a temporary file and returns its path.

The temporary file is deleted when SetInput() is called again with a different input stream or when this reader is destroyed.

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

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

◆ GetMimeType()

const CustomMimeType* mitk::AbstractFileReader::GetMimeType ( ) const
protected

Get the MIME type this reader can handle.

Returns
Pointer to the internal CustomMimeType, or nullptr.

◆ GetMimeTypePrefix()

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

Get the current MIME type name prefix.

Returns
The prefix string.

◆ GetOption()

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

Get the value of a specific option.

Parameters
[in]nameThe option name.
Returns
The option value.

Implements mitk::IFileIO.

◆ GetOptions()

Options mitk::AbstractFileReader::GetOptions ( ) const
overridevirtual

Get the current option values.

Returns
A map of option names to their current values.

Implements mitk::IFileIO.

◆ GetProperties()

const PropertyList* mitk::AbstractFileReader::GetProperties ( ) const
overrideprotectedvirtual

Get the properties set via SetProperties().

Returns
The current PropertyList, or nullptr if none was set.

Implements mitk::IFileReader.

◆ GetRanking()

int mitk::AbstractFileReader::GetRanking ( ) const
protected

Get the service ranking for this file reader.

Returns
The ranking value.

◆ GetReadFiles()

std::vector< std::string > mitk::AbstractFileReader::GetReadFiles ( )
overridevirtual

Get the list of files consumed during the last Read() call.

Returns
A vector of file paths. Must be populated by the DoRead() implementation.

Implements mitk::IFileReader.

◆ GetRegisteredMimeType()

MimeType mitk::AbstractFileReader::GetRegisteredMimeType ( ) const

Get the mime-type that was registered for this reader.

Returns
The registered MimeType, which may be invalid if not yet registered.

◆ GetServiceProperties()

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

Get the service properties for registration.

Returns
A map of service property names to values.

◆ Read() [1/2]

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

Read data and create a list of BaseData objects.

The default implementation calls DoRead() and then annotates each resulting BaseData with meta-information about the reader, MIME type, input location, and reader options.

Returns
A vector of created BaseData objects.
Exceptions
mitk::Exceptionif reading fails.

Implements mitk::IFileReader.

Reimplemented in mitk::SegmentationTaskListIO, mitk::SceneJsonFileReader, mitk::SceneFileReader, mitk::RTStructureSetReaderService, mitk::RTPlanReaderService, mitk::RTDoseReaderService, mitk::ROIIO, mitk::PlanarFigureIO, mitk::MultiLabelSegmentationIO, mitk::LegacyLabelSetImageIO, mitk::DICOMSegmentationIO, mitk::MAPRegistrationWrapperIO, mitk::PlyFileReaderService, mitk::ObjFileReaderService, mitk::DICOMPMIO, mitk::BaseDICOMReaderService, mitk::SurfaceVtkXmlIO, mitk::SurfaceVtkLegacyIO, mitk::SurfaceStlIO, mitk::PointSetReaderService, mitk::ImageVtkXmlIO, mitk::ImageVtkLegacyIO, mitk::ItkImageIO, mitk::GeometryDataReaderService, mitk::ContourModelSetReader, mitk::ContourModelReader, mitk::CESTDICOMManualReaderService, mitk::CESTDICOMReaderService, mitk::ExampleDataStructureReaderService, mitk::SegmentationTaskListIO, mitk::SceneJsonFileReader, mitk::SceneFileReader, mitk::RTStructureSetReaderService, mitk::RTPlanReaderService, mitk::RTDoseReaderService, mitk::ROIIO, mitk::PlanarFigureIO, mitk::MultiLabelSegmentationIO, mitk::LegacyLabelSetImageIO, mitk::DICOMSegmentationIO, mitk::MAPRegistrationWrapperIO, mitk::PlyFileReaderService, mitk::ObjFileReaderService, mitk::DICOMPMIO, mitk::BaseDICOMReaderService, mitk::SurfaceVtkXmlIO, mitk::SurfaceVtkLegacyIO, mitk::SurfaceStlIO, mitk::PointSetReaderService, mitk::ImageVtkXmlIO, mitk::ImageVtkLegacyIO, mitk::ItkImageIO, mitk::GeometryDataReaderService, mitk::ContourModelSetReader, mitk::ContourModelReader, mitk::CESTDICOMManualReaderService, mitk::CESTDICOMReaderService, and mitk::ExampleDataStructureReaderService.

◆ Read() [2/2]

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

Read data and add it to the given DataStorage.

Parameters
[in,out]dsThe DataStorage to add nodes to.
Returns
The set of DataNode objects added to ds.
Exceptions
mitk::Exceptionif reading fails.

Implements mitk::IFileReader.

Reimplemented in mitk::SceneJsonFileReader, and mitk::SceneFileReader.

◆ RegisterMimeType()

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

Register a new CustomMimeType service object.

Called internally from RegisterService(). The default implementation registers a new mime-type service if the mime-type has not been registered yet.

Parameters
[in]contextThe module context for registration.
Returns
The service registration for the CustomMimeType.
Exceptions
std::invalid_argumentif context is nullptr.

◆ RegisterService()

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

Register this reader as a CppMicroServices service.

Registers this reader with its mime-type in the service registry using a PrototypeServiceFactory, so that each consumer gets its own clone. If no MIME type for the configured extension is already registered, a new MIME type is registered automatically.

Parameters
[in]contextThe module context for service registration. Defaults to the current module context.
Returns
The service registration object, or an invalid registration if the reader could not be registered.

◆ RemoveProgressCallback()

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

Remove a previously registered progress callback.

Parameters
[in]callbackThe callback delegate to remove.

Implements mitk::IFileIO.

◆ SetDefaultDataNodeProperties()

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

Set default properties on a DataNode after reading.

Parameters
[in,out]nodeThe DataNode to configure.
[in]filePathThe file path used for reading (used to derive name and path properties).

◆ SetDefaultOptions()

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

Set the default options for this reader.

Parameters
[in]defaultOptionsA map of option names to default values.

◆ SetDescription()

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

Set the human-readable description of this reader.

Parameters
[in]descriptionThe description string.

◆ SetInput() [1/2]

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

Set the input file path, clearing any previously set input stream.

Parameters
[in]locationThe absolute file-system path to read from.

Implements mitk::IFileReader.

◆ SetInput() [2/2]

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

Set an input stream and associated location label.

Parameters
[in]locationA file-system path or custom label.
[in]isThe input stream, or nullptr to clear.

Implements mitk::IFileReader.

◆ SetMimeType()

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

Set the MIME type this reader can handle.

Parameters
[in]mimeTypeThe CustomMimeType to associate with this reader.

◆ SetMimeTypePrefix()

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

Set the prefix used for auto-generated MIME type names.

Parameters
[in]prefixThe prefix string (e.g. "application/vnd.mitk").

◆ SetOption()

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

Set a single option value.

Parameters
[in]nameThe option name.
[in]valueThe new option value.

Implements mitk::IFileIO.

◆ SetOptions()

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

Set multiple options at once.

Parameters
[in]optionsA map of option names to their new values.

Implements mitk::IFileIO.

◆ SetProperties()

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

Set base data properties as a source of meta data for reading.

Parameters
[in]propertiesThe PropertyList to use, or nullptr to clear.
See also
IFileReader::SetProperties()

Implements mitk::IFileReader.

◆ SetRanking()

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

Set the service ranking for this file reader.

Parameters
[in]rankingThe ranking value. Default is zero.

The ranking is used to determine which reader to use if several equivalent readers have been found. Use a higher ranking to override a default reader from MITK in your own project.

◆ UnregisterService()

void mitk::AbstractFileReader::UnregisterService ( )

Unregister this reader from the CppMicroServices registry.

Member Data Documentation

◆ m_ReadFiles

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

List of files consumed during the last Read() call. Must be filled by DoRead().

Definition at line 376 of file mitkAbstractFileReader.h.


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