SequenceMap.h

00001 #ifndef SEQUENCEMAP_H
00002 #define SEQUENCEMAP_H
00003 
00004 #include <boost/utility.hpp>
00005 #include <boost/weak_ptr.hpp>
00006 #include <boost/shared_ptr.hpp>
00007 #include <ctime>
00008 #include <map>
00009 #include <string>
00010 
00011 using boost::weak_ptr;
00012 using boost::shared_ptr;
00013 
00014 namespace SctCalibrationController {
00015     
00016 class Sequence;
00017 
00018 class SequenceMap : boost::noncopyable {
00019 public:    
00020     static SequenceMap& instance() throw();
00021     
00022     weak_ptr<Sequence> getSequence(const std::string& name) throw();
00023     void addSequence(shared_ptr<Sequence> sequence) throw();
00024     
00025 private:
00026     SequenceMap() throw();
00027     
00028     struct SequenceMapData {
00029     SequenceMapData() throw();
00030     shared_ptr<Sequence>  sequence;
00031     time_t created;
00032     time_t lastRequested;
00033     };
00034     typedef std::map<std::string, SequenceMapData> DataMap;
00035     
00036     DataMap map;
00037     
00038     void purge() throw();
00039     void remove(DataMap::iterator& i) throw();
00040 };
00041 
00042 }
00043 
00044 #endif //SEQUENCEMAP_H

Generated on Mon Feb 6 14:01:29 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6