![]() |
Grail (C++)
1.4.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
|
The Blackboard class - grail's universal data container. More...
#include <Blackboard.hh>
Public Member Functions | |
| Blackboard (const Blackboard &other) | |
| Blackboard (Blackboard &&other)=delete | |
| Blackboard & | operator= (const Blackboard &other) |
| Blackboard & | operator= (Blackboard &&other)=delete |
| void | Merge (const Blackboard &other, std::function< BlackboardEntry(const std::string &, const BlackboardEntry &, const BlackboardEntry &)> mergeStrategy=OursStrategy) |
| Merge - Merges data from other blackboard into this one. All conflicts are solved in favor of other blackboard. More... | |
| void | RemoveEntry (const std::string &key) |
| RemoveValue - Deletes value keyed with given name from this blackboard. More... | |
| bool | ContainsKey (const std::string &key) const |
| ContainsKey - Checks whether this blackboard contains given key. More... | |
| size_t | Size () const |
| Size. More... | |
| template<typename T > | |
| void | SetValue (const std::string &key, const T &value) |
| SetValue - Inserts value keyed with name into this blackboard. If key already exists new value is assigned. More... | |
| template<typename T , std::enable_if_t<!std::is_reference< T >::value > * = nullptr> | |
| void | SetValue (const std::string &key, T &&value) |
| SetValue - Inserts value keyed with name into this blackboard. If key already exists new value is assigned. More... | |
| template<typename T > | |
| void | SetDefaultValue (const std::string &key) |
| SetDefaultValue - Inserts default value of given type keyed with name into this blackboard. If key already exists new value is assigned. More... | |
| template<typename T > | |
| const T & | GetValue (const std::string &key) const |
| GetValue - Returns value keyed with name. This method assumes that this blackboard contains given key! More... | |
| template<typename T > | |
| const T & | GetOrAddValue (const std::string &key) |
| GetOrAddValue - Returns value keyed with name. If blackboard does not contain key, new entry is created. More... | |
| template<typename T > | |
| bool | TryGetValue (const std::string &key, T &outValue) const |
| TryGetValue - Checks whether blackboard contains given key. If it does, assigns keyed value to reference parameter outValue. More... | |
| void | SerializeToMap (std::map< std::string, std::string > &outMap) const |
| SerializeToMap - converts the data stored in the blackboard to a map<key, value as string> More... | |
Static Public Member Functions | |
| static void | TwoWayMerge (Blackboard &first, Blackboard &second, std::function< BlackboardEntry(const std::string &, const BlackboardEntry &, const BlackboardEntry &)> firstStrategy=OursStrategy, std::function< BlackboardEntry(const std::string &, const BlackboardEntry &, const BlackboardEntry &)> secondStrategy=OursStrategy) |
| TwoWayMerge - merges second blackboard into first and first into second, uses provided merge strategies. More... | |
| static BlackboardEntry | OursStrategy (const std::string &, const BlackboardEntry &ours, const BlackboardEntry &theirs) |
| OursStrategy. More... | |
| static BlackboardEntry | TheirsStrategy (const std::string &, const BlackboardEntry &ours, const BlackboardEntry &theirs) |
| TheirsStrategy. More... | |
The Blackboard class - grail's universal data container.
| bool grail::Blackboard::ContainsKey | ( | const std::string & | key | ) | const |
ContainsKey - Checks whether this blackboard contains given key.
| key |
|
inline |
GetOrAddValue - Returns value keyed with name. If blackboard does not contain key, new entry is created.
| name |
|
inline |
GetValue - Returns value keyed with name. This method assumes that this blackboard contains given key!
| name |
| void grail::Blackboard::Merge | ( | const Blackboard & | other, |
| std::function< BlackboardEntry(const std::string &, const BlackboardEntry &, const BlackboardEntry &)> | mergeStrategy = OursStrategy |
||
| ) |
Merge - Merges data from other blackboard into this one. All conflicts are solved in favor of other blackboard.
| other | |
| mergeStrategy | - determines how conflicts will be resolved |
|
static |
OursStrategy.
| ours | |
| theirs |
| void grail::Blackboard::RemoveEntry | ( | const std::string & | key | ) |
RemoveValue - Deletes value keyed with given name from this blackboard.
| name |
| void grail::Blackboard::SerializeToMap | ( | std::map< std::string, std::string > & | outMap | ) | const |
SerializeToMap - converts the data stored in the blackboard to a map<key, value as string>
| outMap | - map that will be populated by serialized key-values from the blackboard. |
|
inline |
SetDefaultValue - Inserts default value of given type keyed with name into this blackboard. If key already exists new value is assigned.
| name |
|
inline |
SetValue - Inserts value keyed with name into this blackboard. If key already exists new value is assigned.
| name | |
| value |
|
inline |
SetValue - Inserts value keyed with name into this blackboard. If key already exists new value is assigned.
| name | |
| value |
| size_t grail::Blackboard::Size | ( | ) | const |
Size.
|
static |
TheirsStrategy.
| ours | |
| theirs |
|
inline |
TryGetValue - Checks whether blackboard contains given key. If it does, assigns keyed value to reference parameter outValue.
| name | |
| outValue |
|
static |
TwoWayMerge - merges second blackboard into first and first into second, uses provided merge strategies.
| first | |
| second | |
| firstStrategy | |
| secondStrategy |