00001 #ifndef SCT_IONAME_H
00002 #define SCT_IONAME_H
00003
00004 #include "LogicErrors.h"
00005
00006 namespace Sct {
00007
00008
00009 class IOName {
00010 public:
00011 IOName(const string& nameIO) throw(InvalidArgumentError);
00012 IOName(const string& uniqueID, const string& className) throw(InvalidArgumentError);
00013 virtual ~IOName() throw();
00014
00015 string getIOName() const throw();
00016 string getUniqueID() const throw();
00017 string getClassName() const throw();
00018
00020 virtual bool wildcard() const;
00021 typedef std::list<shared_ptr<IOName> >::iterator iterator;
00022 typedef std::list<shared_ptr<IOName> >::const_iterator const_iterator;
00024 iterator begin();
00026 iterator end();
00028 const_iterator begin() const;
00030 const_iterator end() const;
00031 protected: protected:
00036 virtual void parse() throw(InvalidArgumentError) = 0;
00037
00041 virtual void construct() throw() = 0;
00042
00046 virtual void expandWildcards();
00047 string uniqueID;
00048 string className;
00049 string nameIO;
00050 std::list<shared_ptr<IOName> > m_list;
00051 mutable bool m_wildcardsExpanded;
00052 IOName() {}
00053 };
00054
00055 }
00056
00057 #endif //SCT_IONAME_H