代码拉取完成,页面将自动刷新
同步操作将从 wufangzhao/startalk_pc_v2 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*
* Copyright (c) 2014, Dan Quist
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _SRC_EVENT_EVENT_HANDLER_HPP_
#define _SRC_EVENT_EVENT_HANDLER_HPP_
#include "Object.hpp"
#include <typeinfo>
#include <type_traits>
#include "eventbus_global.h"
// Forward declare the Event class
class Event;
/**
* \brief Base class of all classes that listen for events
*
* For a class to be an event listener, it needs to inherit from EventHandler
* with the specific event type as the template parameter. A class can inherit from
* multiple EventHandler base classes each using a different template parameter.
*/
template <class T>
class EVENTBUS_EXPORT EventHandler {
public:
/**
* \brief Default constructor that enforces the template type
*/
EventHandler() {
// An error here indicates you're trying to implement EventHandler with a type that is not derived from Event
static_assert(std::is_base_of<Event, T>::value, "EventHandler<T>: T must be a class derived from Event");
}
/**
* \brief Empty virtual destructor
*/
virtual ~EventHandler() { }
/**
* \brief Pure virtual method for implementing the body of the listener
*
* @param The event instance
*/
virtual void onEvent(T &) = 0;
/**
* \brief Dispatches a generic event to the appropriate listener method
*
* This method is called by the EventBus and dispatches to the correct method by
* dynamic casting the event parameter to the template type for this handler.
*
* @param e The event to dispatch
*/
void dispatch(Event & e) {
onEvent(dynamic_cast<T &>(e));
}
};
#endif /* _SRC_EVENT_EVENT_HANDLER_HPP_ */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。