Generic hardware access library
/home/cschwick/hal/generic/include/hal/CommandCreator.hh
Go to the documentation of this file.
00001 #ifndef __CommandCreator
00002 #define __CommandCreator
00003 
00004 #include <list>
00005 #include <string>
00006 #include <map>
00007 
00008 #include "hal/SequencerCommand.hh"
00009 #include "hal/AbstractCommandFactory.hh"
00010 #include "hal/SequencerSyntaxError.hh"
00011 #include "hal/NoSuchItemException.hh"
00012 #include "hal/AddressTableInterface.hh"
00013 
00014 // 12 Commands
00015 #include "hal/WriteFactory.hh"
00016 #include "hal/UnmaskedWriteFactory.hh"
00017 #include "hal/SetBitFactory.hh"
00018 #include "hal/ResetBitFactory.hh"
00019 #include "hal/DefineFactory.hh"
00020 #include "hal/AddFactory.hh"
00021 #include "hal/ReadFactory.hh"
00022 #include "hal/UnmaskedReadFactory.hh"
00023 #include "hal/LabelFactory.hh"
00024 #include "hal/GotoFactory.hh"
00025 #include "hal/PrintFactory.hh"
00026 #include "hal/CheckFactory.hh"
00027 #include "hal/PollItemFactory.hh"
00028 
00029 namespace HAL {
00030 
00031 class CommandSequence;
00032 
00062 class CommandCreator {
00063 public:
00070   CommandCreator();
00071   virtual ~CommandCreator();
00072 
00081   SequencerCommand* create( std::list<std::string> commandStringList,
00082                             const AddressTableInterface& addressTable,
00083                             CommandSequence& sequence) 
00084     throw (SequencerSyntaxError, NoSuchItemException);
00085   
00086 private: 
00087   std::map< std::string, AbstractCommandFactory* > commandFactoryMap;
00088 };
00089 
00090 } /* namespace HAL */
00091 
00092 #endif /* __CommandCreator */