Public Member Functions | |
bool | registerObject (DataReader *reader) |
bool | unRegisterObject (DataReader *reader) |
virtual std::unique_ptr< DataReader > | create (const FileExtension &key) const override |
virtual std::unique_ptr< DataReader > | create (std::string_view key) const override |
virtual bool | hasKey (std::string_view key) const override |
virtual bool | hasKey (const FileExtension &key) const override |
template<typename T> | |
std::vector< FileExtension > | getExtensionsForType () const |
template<typename... Ts> | |
std::vector< FileExtension > | getExtensionsForTypes () const |
template<typename... Ts> | |
auto | getExtensionsForTypesView () const |
template<typename T> | |
std::unique_ptr< DataReaderType< T > > | getReaderForTypeAndExtension (const std::filesystem::path &filePathOrExtension) const |
Return a reader matching the file extension of DataReader of type T. Does case insensitive comparison between the last part of filePathOrExtension and each registered extension. Does not check for "." before the extension, so it is valid to pass for example "png". | |
template<typename T> | |
std::unique_ptr< DataReaderType< T > > | getReaderForTypeAndExtension (const FileExtension &ext) const |
template<typename T> | |
std::unique_ptr< DataReaderType< T > > | getReaderForTypeAndExtension (const FileExtension &ext, const std::filesystem::path &fallbackFilePathOrExtension) const |
template<typename T> | |
bool | hasReaderForTypeAndExtension (const std::filesystem::path &filePathOrExtension) const |
template<typename T> | |
bool | hasReaderForTypeAndExtension (const FileExtension &ext) const |
template<typename T> | |
std::shared_ptr< T > | readDataForTypeAndExtension (const std::filesystem::path &filePath, std::optional< FileExtension > ext=std::nullopt) const |
![]() | |
Factory (const Factory &)=delete | |
Factory (Factory &&)=default | |
Factory & | operator= (const Factory &)=delete |
Factory & | operator= (Factory &&)=default |
virtual std::unique_ptr< DataReader > | create (const FileExtension &key, Args... args) const=0 |
virtual std::shared_ptr< DataReader > | createShared (const FileExtension &key, Args... args) const |
![]() | |
Factory (const Factory &)=delete | |
Factory (Factory &&)=default | |
Factory & | operator= (const Factory &)=delete |
Factory & | operator= (Factory &&)=default |
virtual std::unique_ptr< DataReader > | create (std::string_view key, Args... args) const=0 |
virtual std::shared_ptr< DataReader > | createShared (std::string_view key, Args... args) const |
![]() | |
Observable (const Observable< FactoryObserver< DataReader > > &other) | |
Observable (Observable< FactoryObserver< DataReader > > &&other) noexcept | |
Observable< FactoryObserver< DataReader > > & | operator= (const Observable< FactoryObserver< DataReader > > &other) |
Observable< FactoryObserver< DataReader > > & | operator= (Observable< FactoryObserver< DataReader > > &&other) noexcept |
void | addObserver (FactoryObserver< DataReader > *observer) |
void | removeObserver (FactoryObserver< DataReader > *observer) |
virtual void | startBlockingNotifications () override final |
virtual void | stopBlockingNotifications () override final |
Protected Attributes | |
std::map< FileExtension, DataReader * > | map_ |
Additional Inherited Members | |
![]() | |
void | notifyObserversOnRegister (DataReader *p) |
void | notifyObserversOnUnRegister (DataReader *p) |
![]() | |
void | forEachObserver (C callback) |
![]() | |
void | addObservationHelper (Observer *observer) |
void | removeObservationHelper (Observer *observer) |
std::unique_ptr< DataReaderType< T > > inviwo::DataReaderFactory::getReaderForTypeAndExtension | ( | const FileExtension & | ext, |
const std::filesystem::path & | fallbackFilePathOrExtension ) const |
First look for a reader using the FileExtension ext, and if no reader was found look for a reader using the fallbackFilePathOrExtension. This is often used with a file open dialog, where the dialog will have a selectedFileExtension that will be used as ext, and the fallbackFilePathOrExtension is taken from the file to be opened. This way any selected reader will have priority over the file extension.
std::unique_ptr< DataReaderType< T > > inviwo::DataReaderFactory::getReaderForTypeAndExtension | ( | const std::filesystem::path & | filePathOrExtension | ) | const |
Return a reader matching the file extension of DataReader of type T. Does case insensitive comparison between the last part of filePathOrExtension and each registered extension. Does not check for "." before the extension, so it is valid to pass for example "png".
filePathOrExtension | Path to file, or simply the extension. |
|
overridevirtual |
|
overridevirtual |
Implements inviwo::Factory< DataReader, std::string_view >.