MultiAgentDecisionProcess  Release 0.2.1
JointActionDiscrete.h
Go to the documentation of this file.
1 
28 /* Only include this header file once. */
29 #ifndef _JOINTACTIONINTEGER_H_
30 #define _JOINTACTIONINTEGER_H_ 1
31 
32 /* the include directives */
33 
34 #include <iostream>
35 #include "Globals.h"
36 #include "JointAction.h"
37 #include "DiscreteEntity.h"
38 
39 class ActionDiscrete;
40 
43  public DiscreteEntity
44 {
45  private:
46 
48  std::vector<Index> _m_aIndexVector;
50  std::vector<const ActionDiscrete*> _m_apVector;
52  std::vector<Index> ConstructIndividualActionDiscretesIndices() const;
53 
54  protected:
55 
56 
57 
58  public:
59  // Constructor, destructor and copy assignment.
61  JointActionDiscrete(Index index = 0);
63  JointActionDiscrete(Index index, std::vector<const ActionDiscrete*> a);
68 
69  //operators:
70 
71  //data manipulation (set) functions
73 
76 
78 
81  void AddIndividualAction(const ActionDiscrete* a, Index agentI);
82 
83  //get (data) functions:
85  const std::vector<const ActionDiscrete*>& GetIndividualActionDiscretes() const
86  { return(_m_apVector);}
88  const std::vector<Index>& GetIndividualActionDiscretesIndices() const
89  { return(_m_aIndexVector);}
91  virtual JointActionDiscrete* Clone() const
92  { return new JointActionDiscrete(*this); }
93 
94  //other
95  std::string SoftPrint() const;
96  std::string SoftPrintBrief() const;
97 };
98 
99 
100 #endif /* !_JOINTACTIONINTEGER_H_ */
101 
102 
103 // Local Variables: ***
104 // mode:c++ ***
105 // End: ***