Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::FileReaderRegistry Class Reference

Registry that provides convenient access to IFileReader service instances. More...

#include <mitkFileReaderRegistry.h>

Public Types

typedef us::ServiceReference< IFileReader > ReaderReference
 Service reference type for IFileReader services. More...
 

Public Member Functions

 FileReaderRegistry ()
 Construct a FileReaderRegistry. More...
 
 ~FileReaderRegistry ()
 Destroy the registry, releasing all obtained reader service objects. More...
 
mitk::IFileReader * GetReader (const ReaderReference &ref, us::ModuleContext *context=us::GetModuleContext())
 Get a reader instance for the given service reference. More...
 
std::vector< mitk::IFileReader * > GetReaders (const MimeType &mimeType, us::ModuleContext *context=us::GetModuleContext())
 Get all reader instances for the given mime-type, sorted by ranking. More...
 
void UngetReader (mitk::IFileReader *reader)
 Release a reader previously obtained via GetReader() or GetReaders(). More...
 
void UngetReaders (const std::vector< mitk::IFileReader * > &readers)
 Release multiple readers previously obtained via GetReaders(). More...
 

Static Public Member Functions

static MimeType GetMimeTypeForFile (const std::string &path, us::ModuleContext *context=us::GetModuleContext())
 Get the highest-ranked mime-type for the given file path. More...
 
static std::vector< ReaderReference > GetReferences (const MimeType &mimeType, us::ModuleContext *context=us::GetModuleContext())
 Get service references for all readers supporting the given mime-type. More...
 

Detailed Description

Registry that provides convenient access to IFileReader service instances.

FileReaderRegistry manages the life-cycle of IFileReader service objects obtained from the CppMicroServices registry. It provides methods to look up readers by mime-type and to resolve the best-matching mime-type for a given file path.

Note
The life-time of all mitk::IFileReader objects returned by an instance of this class ends with the destruction of that instance. Readers obtained via GetReader() or GetReaders() must not be used after the owning FileReaderRegistry is destroyed, or after UngetReader() / UngetReaders() has been called on them.
See also
IFileReader
FileReaderSelector
MimeType

Definition at line 50 of file mitkFileReaderRegistry.h.

Member Typedef Documentation

◆ ReaderReference

Service reference type for IFileReader services.

Definition at line 54 of file mitkFileReaderRegistry.h.

Constructor & Destructor Documentation

◆ FileReaderRegistry()

mitk::FileReaderRegistry::FileReaderRegistry ( )

Construct a FileReaderRegistry.

◆ ~FileReaderRegistry()

mitk::FileReaderRegistry::~FileReaderRegistry ( )

Destroy the registry, releasing all obtained reader service objects.

Member Function Documentation

◆ GetMimeTypeForFile()

static MimeType mitk::FileReaderRegistry::GetMimeTypeForFile ( const std::string &  path,
us::ModuleContext *  context = us::GetModuleContext() 
)
static

Get the highest-ranked mime-type for the given file path.

Parameters
[in]pathThe file path to match (must not be empty).
[in]contextThe module context for service look-up. Defaults to the current module context.
Returns
The highest-ranked MimeType whose extensions match path, or an invalid MimeType if none matched.
Exceptions
mitk::Exceptionif path is empty.

◆ GetReader()

mitk::IFileReader* mitk::FileReaderRegistry::GetReader ( const ReaderReference &  ref,
us::ModuleContext *  context = us::GetModuleContext() 
)

Get a reader instance for the given service reference.

Parameters
[in]refThe service reference to resolve.
[in]contextThe module context for service look-up.
Returns
A pointer to the IFileReader instance. The reader is owned by this registry and must be released via UngetReader().

◆ GetReaders()

std::vector<mitk::IFileReader *> mitk::FileReaderRegistry::GetReaders ( const MimeType &  mimeType,
us::ModuleContext *  context = us::GetModuleContext() 
)

Get all reader instances for the given mime-type, sorted by ranking.

Parameters
[in]mimeTypeThe mime-type to filter by.
[in]contextThe module context for service look-up.
Returns
A vector of IFileReader pointers, sorted by descending service ranking. Each reader is owned by this registry and must be released via UngetReader() or UngetReaders().

◆ GetReferences()

static std::vector<ReaderReference> mitk::FileReaderRegistry::GetReferences ( const MimeType &  mimeType,
us::ModuleContext *  context = us::GetModuleContext() 
)
static

Get service references for all readers supporting the given mime-type.

Parameters
[in]mimeTypeThe mime-type to filter by.
[in]contextThe module context for service look-up.
Returns
A vector of service references for matching IFileReader services.

◆ UngetReader()

void mitk::FileReaderRegistry::UngetReader ( mitk::IFileReader *  reader)

Release a reader previously obtained via GetReader() or GetReaders().

Parameters
[in]readerThe reader to release.

◆ UngetReaders()

void mitk::FileReaderRegistry::UngetReaders ( const std::vector< mitk::IFileReader * > &  readers)

Release multiple readers previously obtained via GetReaders().

Parameters
[in]readersThe readers to release.

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