Project Malmo  0.37.0
RewardXML.h
1 // --------------------------------------------------------------------------------------------------
2 // Copyright (c) 2016 Microsoft Corporation
3 //
4 // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
5 // associated documentation files (the "Software"), to deal in the Software without restriction,
6 // including without limitation the rights to use, copy, modify, merge, publish, distribute,
7 // sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
8 // furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in all copies or
11 // substantial portions of the Software.
12 //
13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
14 // NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
16 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18 // --------------------------------------------------------------------------------------------------
19 
20 #ifndef _REWARDXML_H_
21 #define _REWARDXML_H_
22 
23 // STL:
24 #include <map>
25 #include <iostream>
26 
27 // Boost:
28 #include <boost/property_tree/ptree.hpp>
29 
30 namespace malmo
31 {
32  class TimestampedReward;
33 
34  class RewardXML {
35  public:
36 
37  RewardXML() {}
38  RewardXML(std::string xml_text);
39 
40  std::string toXml() const;
41 
42  void parse_rewards(std::string xml_text);
43  void parse_rewards(boost::property_tree::ptree& reward);
44  void add_rewards(boost::property_tree::ptree& reward) const;
45 
46  size_t size() const {
47  return reward_values.size();
48  }
49 
50  friend class TimestampedReward;
51  friend std::ostream& operator<<(std::ostream& os, const TimestampedReward& tsf);
52 
53  private:
54  std::map<int, double> reward_values;
55  };
56 }
57 
58 #endif
Definition: RewardXML.h:34
A map of int:double storing a value on each dimension, with an attached timestamp saying when it was ...
Definition: TimestampedReward.h:35