Labyrinth
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
featuremap.hpp
1 //////////////////////////////
2 //
3 // File: swrs/featuremap.hpp
4 // Author: Maciej Kaminski
5 // E-mail: maciej.a.kaminski@gmail.com
6 // Website: maciejkaminski.pl
7 //
8 // File creation date: Feb 12 2013
9 // This file is part of Project Labyrinth
10 // This file is going to be released under terms of GNU GPL in near future
11 //
12 //////////////////////////////
13 
14 #ifndef __SW_FEATURE_MAP_H_
15 #define __SW_FEATURE_MAP_H_
16 #include <utility>
17 #include <vector>
18 #include <string>
19 #include <unordered_map>
20 #include "swrs/feature.hpp"
21 #include "swrs/optionsmap.hpp"
22 #include "swrs/character.hpp"
23 #include <map>
24 namespace SWRS
25 {
26  class FeatureImpl;
27  //! semantic typedef for Featureman implementation
28  typedef std::map<std::string, pFeatureImpl> FeaturesMap;
29  //! map of features possible for a character See SWRS::Feature to know what it is
30  class FeatureMap: public OptionsMap
31  {
32  friend class RulesSystem;
33  protected:
34  //! actual data
36  //! initialization procedure
37  void ReadFeatureMap(const char * filename);
38  //void PrintSummary();
39  public:
40  //! return proper data
41  const FeaturesMap & GetFeatureMap() const
42  {
43  return features_map;
44  }
45  //! virtual destructor - a requirement in polymorphic class
46  virtual ~FeatureMap(){}
47  };
48  // end of class FeatureMap
49 }
50 #endif
51 
52