#ifndef VLRANDOMACT_HEADER #define VLRANDOMACT_HEADER 1 ///////////////////////////////////////////////////// //! docentry="Logic.Agent" //! author="Charles Galambos" //! rcsid="$Id: RandomAct.hh,v 1.9 2000/07/14 14:31:10 ees1cg Exp $" //! file="amma/Logic/Agent/RandomAct.hh" //! lib=VLAgent //! date="03/08/98" #include "amma/DP/Port.hh" #include "amma/Logic2/LSymb.hh" #include "amma/Logic2/LSpace.hh" #include "amma/Tuple2.hh" #include "amma/Logic2/LExprType.hh" #include "amma/Logic2/LExprSet.hh" #include "amma/Logic2/LSymbSet.hh" #include "amma/HSet.hh" ///////////////////////////////////////////// //! userlevel=Develop //: Random Action Generator Body. // Put Input world states Tuple2C

// Tuple2C,VLSpaceC> : Action, State. // Get Output VLSymbC, actions. class VLRandomActBodyC : public DPIOPortBodyC > { public: VLRandomActBodyC(); //: Constructor. void Add(const VLSpaceC &space); //: Add data from space into random geneation set. void Add(const VLSymbC &expr); //: Add data expression to list of those found. BooleanT AddAction(const VLSymbC &expr); //: Add action. VLExprC Generate(const VLExprTypeC &type); //: Generate a random expression of a given type. VLSymbC GenerateAct(); //: Generate a random action. virtual VLSymbC Get(); //: Get action. virtual BooleanT Put(const Tuple2C &data); //: Put data. // Tuple2 : Action, State. private: HSetC actSymb; HSetC actTypes; VLSymbSetC symbs; // Set of all symbols found. HashARC exprTypes; VLSpaceC lastSpace; // Last space analyised }; /////////////////////////////////////////// //! userlevel=Normal //: Random Action Generator. // Put Input world states Tuple2C // Get Output VLSymbC, actions. class VLRandomActC : public DPIOPortC > { public: inline VLRandomActC(); // Constructor. }; ////////////////////////////////////// inline VLRandomActC::VLRandomActC() : DPEntityC(*new VLRandomActBodyC()) {} #endif