Medical Imaging Interaction Toolkit  2018.4.99-dfa0c14e
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
const CustomMimeType * GetMimeType() const
#define MITKCORE_EXPORT
ConfidenceLevel GetConfidenceLevel() const override
The confidence level of the reader or writer implementation.
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
ConfidenceLevel GetConfidenceLevel() const override
The confidence level of the reader or writer implementation.
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)
us::ServiceRegistration< IFileReader > RegisterService(us::ModuleContext *context=us::GetModuleContext())
ConfidenceLevel
A confidence level describing the confidence of the reader or writer in handling the given data...
Definition: mitkIFileIO.h:45
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.
Base class for creating mitk::BaseData objects from files or streams.
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)