Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkFileReaderRegistry.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkFileReaderRegistry_h
14 #define mitkFileReaderRegistry_h
15 
16 #include <MitkCoreExports.h>
17 #include <mitkBaseData.h>
18 
19 #include <mitkIFileReader.h>
20 
21 // Microservices
22 #include <usGetModuleContext.h>
23 #include <usServiceObjects.h>
24 #include <usServiceReference.h>
25 
26 namespace mitk
27 {
28  class MimeType;
29 
51  {
52  public:
55 
58 
63 
73  static MimeType GetMimeTypeForFile(const std::string &path, us::ModuleContext *context = us::GetModuleContext());
74 
81  static std::vector<ReaderReference> GetReferences(const MimeType &mimeType,
83 
92 
101  std::vector<mitk::IFileReader *> GetReaders(const MimeType &mimeType,
103 
109 
114  void UngetReaders(const std::vector<mitk::IFileReader *> &readers);
115 
116  private:
117  // purposely not implemented
119  FileReaderRegistry &operator=(const FileReaderRegistry &);
120 
121  std::map<mitk::IFileReader *, us::ServiceObjects<mitk::IFileReader>> m_ServiceObjects;
122  };
123 
124 } // namespace mitk
125 
126 #endif
#define MITKCORE_EXPORT
Registry that provides convenient access to IFileReader service instances.
us::ServiceReference< IFileReader > ReaderReference
Service reference type for IFileReader services.
static std::vector< ReaderReference > GetReferences(const MimeType &mimeType, us::ModuleContext *context=us::GetModuleContext())
Get service references for all readers supporting the given mime-type.
void UngetReader(mitk::IFileReader *reader)
Release a reader previously obtained via GetReader() or GetReaders().
static MimeType GetMimeTypeForFile(const std::string &path, us::ModuleContext *context=us::GetModuleContext())
Get the highest-ranked mime-type for the given file path.
mitk::IFileReader * GetReader(const ReaderReference &ref, us::ModuleContext *context=us::GetModuleContext())
Get a reader instance for the given service reference.
~FileReaderRegistry()
Destroy the registry, releasing all obtained reader service objects.
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.
FileReaderRegistry()
Construct a FileReaderRegistry.
void UngetReaders(const std::vector< mitk::IFileReader * > &readers)
Release multiple readers previously obtained via GetReaders().
Immutable, value-type wrapper for a registered mime-type.
Definition: mitkMimeType.h:45
static ModuleContext * GetModuleContext()
Returns the module context of the calling module.
Find image slices visible on a given plane.
The common interface for all MITK file readers.