Ember
Loading...
Searching...
No Matches
BlackboardEntry.h
Go to the documentation of this file.
1#pragma once
2
3#include "Types/Types.h"
4#include <map>
5#include <memory>
6#include <string>
7
8namespace EmberCore {
9
80
87 public:
88 Blackboard() = default;
89 explicit Blackboard(const EmberCore::String &id);
90
91 // Basic properties
92 const EmberCore::String &GetId() const { return id_; }
93 void SetId(const EmberCore::String &id) { id_ = id; }
94
95 const EmberCore::String &GetParentId() const { return parent_id_; }
96 void SetParentId(const EmberCore::String &parentId) { parent_id_ = parentId; }
97
98 // Entry management
99 void AddEntry(std::unique_ptr<BlackboardEntry> entry);
100 void AddEntry(const EmberCore::String &key, BlackboardEntry::DataType type, const EmberCore::String &value = "");
101
103 const BlackboardEntry *GetEntry(const EmberCore::String &key) const;
104
105 bool HasEntry(const EmberCore::String &key) const;
106 void RemoveEntry(const EmberCore::String &key);
107
108 // Get all entries
109 const std::map<EmberCore::String, std::unique_ptr<BlackboardEntry>> &GetEntries() const { return entries_; }
110 size_t GetEntryCount() const { return entries_.size(); }
111
112 // Utility
113 void Clear();
114 std::unique_ptr<Blackboard> Clone() const;
115
116 private:
119 std::map<EmberCore::String, std::unique_ptr<BlackboardEntry>> entries_;
120};
121
122} // namespace EmberCore
Represents a single entry in a behavior tree blackboard.
const EmberCore::String & GetValue() const
void SetValue(const EmberCore::String &value)
static DataType ParseDataType(const EmberCore::String &typeStr)
void SetKey(const EmberCore::String &key)
EmberCore::String GetTypeString() const
void SetType(DataType type)
static EmberCore::String DataTypeToString(DataType type)
const EmberCore::String & GetKey() const
DataType
Supported data types for blackboard entries.
const EmberCore::String & GetParentId() const
void SetId(const EmberCore::String &id)
const EmberCore::String & GetId() const
bool HasEntry(const EmberCore::String &key) const
BlackboardEntry * GetEntry(const EmberCore::String &key)
const std::map< EmberCore::String, std::unique_ptr< BlackboardEntry > > & GetEntries() const
void AddEntry(std::unique_ptr< BlackboardEntry > entry)
EmberCore::String parent_id_
void RemoveEntry(const EmberCore::String &key)
void SetParentId(const EmberCore::String &parentId)
std::map< EmberCore::String, std::unique_ptr< BlackboardEntry > > entries_
std::unique_ptr< Blackboard > Clone() const
size_t GetEntryCount() const
EmberCore::String id_
Main types header for EmberCore.
std::string String
Framework-agnostic string type.
Definition String.h:14