From e896c08c6a29c7c2417ea14ef752b65219127b43 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 25 Nov 2023 17:23:10 +0800 Subject: [PATCH] 1 --- server/robotserver/btcontext.cc | 28 ++++++++++++++++++++++++++++ server/robotserver/btcontext.h | 9 ++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/server/robotserver/btcontext.cc b/server/robotserver/btcontext.cc index 8804af42..ea9f84eb 100644 --- a/server/robotserver/btcontext.cc +++ b/server/robotserver/btcontext.cc @@ -6,3 +6,31 @@ BtContext::~BtContext() { } + +void BtContext::AddHandler(std::weak_ptr target, std::weak_ptr handler) +{ +} + + +void BtContext::AddEvent(std::shared_ptr event) +{ +} + +bool BtContext::HasEvent() +{ + if (!events_.empty()) { + auto event = events_.at(events_.size() - 1); + return event->HasEvent(); + } + return false; +} + +void BtContext::FireEvent(BaseAgent* agent) +{ + if (!events_.empty()) { + auto event = events_.at(events_.size() - 1); + if (event->HasEvent()) { + event->FireEvent(agent); + } + } +} diff --git a/server/robotserver/btcontext.h b/server/robotserver/btcontext.h index d6c97867..1135dfc3 100644 --- a/server/robotserver/btcontext.h +++ b/server/robotserver/btcontext.h @@ -1,13 +1,20 @@ #pragma once +class Player; class BtEvent; +class BaseAgent; +class EventHandler; class BtContext : public std::enable_shared_from_this { public: virtual ~BtContext(); + void AddHandler(std::weak_ptr target, std::weak_ptr handler); + void AddEvent(std::shared_ptr event); + bool HasEvent(); + void FireEvent(BaseAgent* agent); private: std::vector> events_; - + std::vector, std::weak_ptr>> handlers_; };