Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

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 namespace std;
00012 using boost::weak_ptr;
00013 using boost::shared_ptr;
00014 
00015 namespace SctCalibrationController {
00016     
00017 class Sequence;
00018 
00019 class SequenceMap : boost::noncopyable {
00020 public:    
00021     static SequenceMap& instance() throw();
00022     
00023     weak_ptr<Sequence> getSequence(const string& name) throw();
00024     void addSequence(shared_ptr<Sequence> sequence) throw();
00025     
00026 private:
00027     SequenceMap() throw();
00028     
00029     struct SequenceMapData {
00030     SequenceMapData() throw();
00031     shared_ptr<Sequence>  sequence;
00032     time_t created;
00033     time_t lastRequested;
00034     };
00035     typedef map<string, SequenceMapData> DataMap;
00036     
00037     DataMap map;
00038     
00039     void purge() throw();
00040     void remove(DataMap::iterator& i) throw();
00041 };
00042 
00043 }
00044 
00045 #endif //SEQUENCEMAP_H

Generated on Thu Jul 15 09:50:53 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5