Medical Imaging Interaction Toolkit  2018.4.99-ae21cdc4
Medical Imaging Interaction Toolkit
mitkAbstractFileIO.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 MITKABSTRACTFILEIO_H
14 #define MITKABSTRACTFILEIO_H
15 
16 #include "mitkAbstractFileReader.h"
17 #include "mitkAbstractFileWriter.h"
18 
19 namespace mitk
20 {
21 #ifndef DOXYGEN_SKIP
22 
23  // Skip this code during Doxygen processing, because it only
24  // exists to resolve name clashes when inheriting from both
25  // AbstractFileReader and AbstractFileWriter.
26 
28  {
29  public:
31  ConfidenceLevel GetConfidenceLevel() const override { return this->GetReaderConfidenceLevel(); }
32  protected:
34  AbstractFileIOReader(const CustomMimeType &mimeType, const std::string &description)
35  : AbstractFileReader(mimeType, description)
36  {
37  }
38 
39  private:
40  virtual IFileReader *ReaderClone() const = 0;
41  IFileReader *Clone() const override { return ReaderClone(); }
42  };
43 
45  {
47  ConfidenceLevel GetConfidenceLevel() const override { return this->GetWriterConfidenceLevel(); }
48  protected:
49  AbstractFileIOWriter(const std::string &baseDataType) : AbstractFileWriter(baseDataType) {}
50  AbstractFileIOWriter(const std::string &baseDataType,
51  const CustomMimeType &mimeType,
52  const std::string &description)
53  : AbstractFileWriter(baseDataType, mimeType, description)
54  {
55  }
56 
57  private:
58  virtual IFileWriter *WriterClone() const = 0;
59  IFileWriter *Clone() const override { return WriterClone(); }
60  };
61 
62 #endif // DOXYGEN_SKIP
63 
70  {
71  public:
72  Options GetReaderOptions() const;
73  us::Any GetReaderOption(const std::string &name) const;
74 
75  void SetReaderOptions(const Options &options);
76  void SetReaderOption(const std::string &name, const us::Any &value);
77 
78  Options GetWriterOptions() const;
79  us::Any GetWriterOption(const std::string &name) const;
80 
81  void SetWriterOptions(const Options &options);
82  void SetWriterOption(const std::string &name, const us::Any &value);
83 
85 
86  ConfidenceLevel GetWriterConfidenceLevel() const override;
87 
88  std::pair<us::ServiceRegistration<IFileReader>, us::ServiceRegistration<IFileWriter>> RegisterService(
89  us::ModuleContext *context = us::GetModuleContext());
90 
91  protected:
92  AbstractFileIO(const AbstractFileIO &other);
93 
94  AbstractFileIO(const std::string &baseDataType);
95 
109  explicit AbstractFileIO(const std::string &baseDataType,
110  const CustomMimeType &mimeType,
111  const std::string &description);
112 
113  void SetMimeType(const CustomMimeType &mimeType);
114 
118  const CustomMimeType *GetMimeType() const;
119 
120  void SetReaderDescription(const std::string &description);
121  std::string GetReaderDescription() const;
122 
123  void SetWriterDescription(const std::string &description);
124  std::string GetWriterDescription() const;
125 
126  void SetDefaultReaderOptions(const Options &defaultOptions);
127  Options GetDefaultReaderOptions() const;
128 
129  void SetDefaultWriterOptions(const Options &defaultOptions);
130  Options GetDefaultWriterOptions() const;
131 
142  void SetReaderRanking(int ranking);
143  int GetReaderRanking() const;
144 
145  void SetWriterRanking(int ranking);
146  int GetWriterRanking() const;
147 
148  private:
149  AbstractFileIO &operator=(const AbstractFileIO &other);
150 
151  virtual AbstractFileIO *IOClone() const = 0;
152 
153  IFileReader *ReaderClone() const override;
154  IFileWriter *WriterClone() const override;
155  };
156 }
157 
158 #endif // MITKABSTRACTFILEIO_H
ConfidenceLevel GetConfidenceLevel() const override
The confidence level of the reader or writer implementation.
#define MITKCORE_EXPORT
DataCollection - Class to facilitate loading/accessing structured data.
std::map< std::string, us::Any > Options
Options for reading or writing data.
Definition: mitkIFileIO.h:69
virtual ConfidenceLevel GetWriterConfidenceLevel() const
void SetMimeType(const CustomMimeType &mimeType)
The CustomMimeType class represents a custom mime-type which may be registered as a service object...
AbstractFileIOWriter(const std::string &baseDataType)
AbstractFileIOReader(const CustomMimeType &mimeType, const std::string &description)
ConfidenceLevel
A confidence level describing the confidence of the reader or writer in handling the given data...
Definition: mitkIFileIO.h:45
ConfidenceLevel GetConfidenceLevel() const override
The confidence level of the reader or writer implementation.
Definition: usAny.h:163
ConfidenceLevel GetConfidenceLevel() const override
The confidence level of the reader or writer implementation.
ConfidenceLevel GetConfidenceLevel() const override
The confidence level of the reader or writer implementation.
const CustomMimeType * GetMimeType() const
Base class for creating mitk::BaseData objects from files or streams.
us::ServiceRegistration< IFileReader > RegisterService(us::ModuleContext *context=us::GetModuleContext())
virtual ConfidenceLevel GetReaderConfidenceLevel() const
The common interface for all MITK file readers.
The common interface of all MITK file writers.
Abstract class for implementing a reader and writer.
Base class for writing mitk::BaseData objects to files or streams.
static ModuleContext * GetModuleContext()
Returns the module context of the calling module.
AbstractFileIOWriter(const std::string &baseDataType, const CustomMimeType &mimeType, const std::string &description)