#ifndef OPIE_DATE_BOOK_MANAGER_TEMPLATE_H #define OPIE_DATE_BOOK_MANAGER_TEMPLATE_H #include #include #include namespace Datebook { /** * ManagerTemplate is a template which manages * all kind of managers :) */ template class ManagerTemplate { typedef typename QMap::ConstIterator Iterator; public: ManagerTemplate(); virtual ~ManagerTemplate(); virtual void add( const QString&, const T& t ); void remove( const QString& ); virtual bool load() = 0; virtual bool save() = 0; QStringList names()const; T value(const QString&)const; protected: QMap m_map; }; template ManagerTemplate::ManagerTemplate() { } template ManagerTemplate::~ManagerTemplate() { } template void ManagerTemplate::add( const QString& str, const T& t ) { m_map.insert( str, t ); } template void ManagerTemplate::remove( const QString& str ) { m_map.remove( str ); } template QStringList ManagerTemplate::names()const { QStringList lst; Iterator it; for ( it = m_map.begin(); it != m_map.end(); ++it ) { lst << it.key(); } return lst; } template T ManagerTemplate::value( const QString& str)const { return m_map[str]; } } #endif