Generic hardware access library
/home/cschwick/hal/utilities/include/hal/PersistentCommandSequencer.hh
Go to the documentation of this file.
00001 #ifndef __PersistentCommandSequencer
00002 #define __PersistentCommandSequencer
00003 
00004 #include <string>
00005 #include <map>
00006 
00007 #include "hal/NoSuchFileException.hh"
00008 #include "hal/CommandSequencer.hh"
00009 #include "hal/CommandSequence.hh"
00010 #include "hal/CommandSequenceASCIIReader.hh"
00011 
00012 namespace HAL {
00013 
00034 class PersistentCommandSequencer : public  CommandSequencer {
00035 public:
00036 
00045   PersistentCommandSequencer( std::string configurationFile,
00046                               const AddressTableInterface& addressTable )
00047     throw( IllegalOperationException );
00048 
00049   ~PersistentCommandSequencer();
00050 
00051   void registerSequence( std::string sequenceName );
00052 
00053   void deleteSequence( std::string sequenceName )
00054     throw( IllegalValueException );
00055   
00056   void deleteSequences();
00057 
00058 private:
00059 
00060   void loadSequences( );
00061   void saveSequences();
00062   
00063   std::string configurationFile;
00064   const AddressTableInterface& addressTable;
00065   std::map< std::string, CommandSequenceReader* > readerMap;
00066 };
00067 
00068 } /* namespace HAL */
00069 
00070 #endif /* __PersistentCommandSequencer */