00001 #ifndef SUCCESSOR_GENERATOR_H 00002 #define SUCCESSOR_GENERATOR_H 00003 00004 #include <iostream> 00005 #include <vector> 00006 00007 class Operator; 00008 class TimeStampedState; 00009 00010 class SuccessorGenerator 00011 { 00012 public: 00013 virtual ~SuccessorGenerator() 00014 { 00015 } 00016 virtual void generate_applicable_ops(const TimeStampedState &curr, 00017 std::vector<const Operator *> &ops) = 0; 00018 void dump() 00019 { 00020 _dump(" "); 00021 } 00022 virtual void _dump(string indent) = 0; 00023 }; 00024 00025 SuccessorGenerator *read_successor_generator(std::istream &in); 00026 00027 #endif