24 std::string fname = filename;
27 bool isWriter =
false;
46 size_t dotpos = fname.find_last_of(
".");
47 std::string fileExtension =
"";
48 if(dotpos != std::string::npos)
49 fileExtension = fname.substr( dotpos );
53 std::list<const QGlobalWriterFactory*>::iterator iter;
54 for(iter = writerFactories.begin(); iter!= writerFactories.end(); iter++)
55 if((*iter)->GetExt() == fileExtension)
59 if(fileExtension ==
".root") {
63 else if(fileExtension ==
".txt") {
67 else if(fileExtension ==
".gui") {
72 for(iter = writerFactories.begin(); iter!= writerFactories.end(); iter++)
73 if((*iter)->GetExt() == fileExtension)
81 err.SetDescription(
GetName(),__LINE__,std::string(
"No writer found for extension: \"") + fileExtension +
"\"" +
" (file: "+ fname +
")");
107 std::map<std::string, QGlobalWriter*>::iterator iter;
error class with error type and description
std::list< const QGlobalWriterFactory * > GetListOfGlobalWriters() const
static QGlobalRWFactory & GetInstance()
void LoadPlugin(const std::string &name)
QGlobalWriter * CreateGlobalWriter(const std::string &name)
Class that returns a pointer to the writer matching the given input filename.
QGlobalWriter * GetWriter(const std::string &filename, QError &err)
get writer
std::string fCurrentWriterFilename
std::map< std::string, QGlobalWriter * > fWriters
static QGlobalWriterDispatcher & GetInstance()
QGlobalWriter * fLastWriter
~QGlobalWriterDispatcher()
QGlobalWriterDispatcher()
Abstract class for global writers.
virtual QError Open(const std::string &filename, const std::string &opt="")=0
Open file, called by QGlobalWriterDispatcher.
virtual QError Close()=0
Close file, called by QGlobalWriterDispatcher.
static void Info(const std::string &sender, const std::string &msg)
base class for anything that has a name
const std::string & GetName() const
the Diana namespace is needed because sometimes we use Qt libraries, that use same class names of our...