// RandomSimulator.h #ifndef RandomSimulator_H #define RandomSimulator_H // This is an abtract class to be used as a base for any class which will // hold random generators. It provides an interface for fetching all the // generators and for registering their states. #include #include "ptr/Ptr.h" #include "ptr/NullPolicy.h" class RandomGenerator; class RandomRegistry; class RandomSimulator { public: // typedefs // Pointer to a generator and list of such. typedef Ptr GeneratorPtr; typedef std::vector GeneratorList; public: virtual ~RandomSimulator () {} // Return the list of random generators. // This must be implemented in subclasses. virtual GeneratorList get_generators() =0; // Register the generators. // This should not be overridden in subclasses. void register_generators(RandomRegistry& reg); }; #endif