Ember
Loading...
Searching...
No Matches
Ember::Network::StateManager Class Reference

#include <StateManager.h>

Classes

struct  TickSnapshot

Public Types

using NodeStatus = Protocol::NodeStatus
using StateChangeCallback = std::function<void(int64_t node_id, NodeStatus old_status, NodeStatus new_status)>
using TickCallback = std::function<void(int64_t tick_number)>

Public Member Functions

 StateManager (std::shared_ptr< EmberCore::BehaviorTree > tree)
 ~StateManager ()=default
void ApplyTickUpdate (const Protocol::TickUpdate *update)
void ApplyBlackboardUpdate (const Protocol::BlackboardUpdate *update)
void Reset ()
NodeStatus GetNodeStatus (int64_t node_id) const
int64_t GetCurrentTick () const
const std::vector< int64_t > & GetExecutionPath () const
std::vector< int64_t > GetAndClearChangedNodes ()
void EnableHistory (size_t max_ticks=1000)
void DisableHistory ()
bool IsHistoryEnabled () const
const std::vector< TickSnapshot > & GetHistory () const
void SeekToTick (int64_t tick_number)
void AddStateChangeCallback (StateChangeCallback callback)
void AddTickCallback (TickCallback callback)
void ClearCallbacks ()

Private Member Functions

void NotifyStateChange (int64_t node_id, NodeStatus old_status, NodeStatus new_status)
void NotifyTick (int64_t tick_number)
void SaveSnapshot ()

Private Attributes

std::shared_ptr< EmberCore::BehaviorTreem_tree
std::unordered_map< int64_t, NodeStatusm_nodeStates
std::vector< int64_t > m_executionPath
int64_t m_currentTick = 0
bool m_historyEnabled = false
size_t m_maxHistoryTicks = 1000
std::vector< TickSnapshotm_history
std::vector< int64_t > m_changedNodeIds
std::vector< StateChangeCallbackm_stateCallbacks
std::vector< TickCallbackm_tickCallbacks
std::mutex m_mutex

Detailed Description

Definition at line 16 of file StateManager.h.

Member Typedef Documentation

◆ NodeStatus

◆ StateChangeCallback

using Ember::Network::StateManager::StateChangeCallback = std::function<void(int64_t node_id, NodeStatus old_status, NodeStatus new_status)>

Definition at line 19 of file StateManager.h.

◆ TickCallback

using Ember::Network::StateManager::TickCallback = std::function<void(int64_t tick_number)>

Definition at line 20 of file StateManager.h.

Constructor & Destructor Documentation

◆ StateManager()

Ember::Network::StateManager::StateManager ( std::shared_ptr< EmberCore::BehaviorTree > tree)
explicit

Definition at line 8 of file StateManager.cpp.

◆ ~StateManager()

Ember::Network::StateManager::~StateManager ( )
default

Member Function Documentation

◆ AddStateChangeCallback()

void Ember::Network::StateManager::AddStateChangeCallback ( StateChangeCallback callback)

Definition at line 155 of file StateManager.cpp.

◆ AddTickCallback()

void Ember::Network::StateManager::AddTickCallback ( TickCallback callback)

Definition at line 160 of file StateManager.cpp.

◆ ApplyBlackboardUpdate()

void Ember::Network::StateManager::ApplyBlackboardUpdate ( const Protocol::BlackboardUpdate * update)

Definition at line 63 of file StateManager.cpp.

◆ ApplyTickUpdate()

void Ember::Network::StateManager::ApplyTickUpdate ( const Protocol::TickUpdate * update)

Definition at line 10 of file StateManager.cpp.

◆ ClearCallbacks()

void Ember::Network::StateManager::ClearCallbacks ( )

Definition at line 165 of file StateManager.cpp.

◆ DisableHistory()

void Ember::Network::StateManager::DisableHistory ( )

Definition at line 134 of file StateManager.cpp.

◆ EnableHistory()

void Ember::Network::StateManager::EnableHistory ( size_t max_ticks = 1000)

Definition at line 128 of file StateManager.cpp.

◆ GetAndClearChangedNodes()

std::vector< int64_t > Ember::Network::StateManager::GetAndClearChangedNodes ( )

Definition at line 121 of file StateManager.cpp.

◆ GetCurrentTick()

int64_t Ember::Network::StateManager::GetCurrentTick ( ) const
inline

Definition at line 39 of file StateManager.h.

◆ GetExecutionPath()

const std::vector< int64_t > & Ember::Network::StateManager::GetExecutionPath ( ) const
inline

Definition at line 40 of file StateManager.h.

◆ GetHistory()

const std::vector< TickSnapshot > & Ember::Network::StateManager::GetHistory ( ) const
inline

Definition at line 47 of file StateManager.h.

◆ GetNodeStatus()

StateManager::NodeStatus Ember::Network::StateManager::GetNodeStatus ( int64_t node_id) const

Definition at line 111 of file StateManager.cpp.

◆ IsHistoryEnabled()

bool Ember::Network::StateManager::IsHistoryEnabled ( ) const
inline

Definition at line 46 of file StateManager.h.

◆ NotifyStateChange()

void Ember::Network::StateManager::NotifyStateChange ( int64_t node_id,
NodeStatus old_status,
NodeStatus new_status )
private

Definition at line 171 of file StateManager.cpp.

◆ NotifyTick()

void Ember::Network::StateManager::NotifyTick ( int64_t tick_number)
private

Definition at line 179 of file StateManager.cpp.

◆ Reset()

void Ember::Network::StateManager::Reset ( )

Definition at line 93 of file StateManager.cpp.

◆ SaveSnapshot()

void Ember::Network::StateManager::SaveSnapshot ( )
private

Definition at line 187 of file StateManager.cpp.

◆ SeekToTick()

void Ember::Network::StateManager::SeekToTick ( int64_t tick_number)

Definition at line 140 of file StateManager.cpp.

Member Data Documentation

◆ m_changedNodeIds

std::vector<int64_t> Ember::Network::StateManager::m_changedNodeIds
private

Definition at line 70 of file StateManager.h.

◆ m_currentTick

int64_t Ember::Network::StateManager::m_currentTick = 0
private

Definition at line 64 of file StateManager.h.

◆ m_executionPath

std::vector<int64_t> Ember::Network::StateManager::m_executionPath
private

Definition at line 63 of file StateManager.h.

◆ m_history

std::vector<TickSnapshot> Ember::Network::StateManager::m_history
private

Definition at line 68 of file StateManager.h.

◆ m_historyEnabled

bool Ember::Network::StateManager::m_historyEnabled = false
private

Definition at line 66 of file StateManager.h.

◆ m_maxHistoryTicks

size_t Ember::Network::StateManager::m_maxHistoryTicks = 1000
private

Definition at line 67 of file StateManager.h.

◆ m_mutex

std::mutex Ember::Network::StateManager::m_mutex
mutableprivate

Definition at line 75 of file StateManager.h.

◆ m_nodeStates

std::unordered_map<int64_t, NodeStatus> Ember::Network::StateManager::m_nodeStates
private

Definition at line 62 of file StateManager.h.

◆ m_stateCallbacks

std::vector<StateChangeCallback> Ember::Network::StateManager::m_stateCallbacks
private

Definition at line 72 of file StateManager.h.

◆ m_tickCallbacks

std::vector<TickCallback> Ember::Network::StateManager::m_tickCallbacks
private

Definition at line 73 of file StateManager.h.

◆ m_tree

std::shared_ptr<EmberCore::BehaviorTree> Ember::Network::StateManager::m_tree
private

Definition at line 60 of file StateManager.h.


The documentation for this class was generated from the following files: