From d47ee877be5d1175bdc36f2d87881ddaf875a8e9 Mon Sep 17 00:00:00 2001 From: Oleg Morozenkov Date: Mon, 23 Jul 2018 01:56:42 +0300 Subject: Refactor http clients, fix webhook server, add more samples, change tabs to 4 spaces --- include/tgbot/EventBroadcaster.h | 238 +++++++++++++++++++-------------------- 1 file changed, 119 insertions(+), 119 deletions(-) (limited to 'include/tgbot/EventBroadcaster.h') diff --git a/include/tgbot/EventBroadcaster.h b/include/tgbot/EventBroadcaster.h index 0a4ebe9..d879ab4 100644 --- a/include/tgbot/EventBroadcaster.h +++ b/include/tgbot/EventBroadcaster.h @@ -47,127 +47,127 @@ class EventBroadcaster { friend EventHandler; public: - typedef std::function MessageListener; - typedef std::function InlineQueryListener; - typedef std::function ChosenInlineResultListener; - typedef std::function CallbackQueryListener; - - /** - * @brief Registers listener which receives all messages which the bot can ever receive. - * @param listener Listener. - */ - inline void onAnyMessage(const MessageListener& listener) { - _onAnyMessageListeners.push_back(listener); - } - - /** - * @brief Registers listener which receives all messages with commands (messages with leading '/' char). - * @param commandName Command name which listener can handle. - * @param listener Listener. - */ - inline void onCommand(const std::string& commandName, const MessageListener& listener) { - _onCommandListeners[commandName] = listener; - } - - /** - * @brief Registers listener which receives all messages with commands (messages with leading '/' char). - * @param commandsList Commands names which listener can handle. - * @param listener Listener. - */ - inline void onCommand(const std::initializer_list& commandsList, const MessageListener& listener) { - for (const auto& command : commandsList) - { - _onCommandListeners[command] = listener; - } - } - - /** - * @brief Registers listener which receives all messages with commands (messages with leading '/' char) which haven't been handled by other listeners. - * @param listener Listener. - */ - inline void onUnknownCommand(const MessageListener& listener) { - _onUnknownCommandListeners.push_back(listener); - } - - /** - * @brief Registers listener which receives all messages without commands (messages with no leading '/' char) - * @param listener Listener. - */ - inline void onNonCommandMessage(const MessageListener& listener) { - _onNonCommandMessageListeners.push_back(listener); - } - - /** - * @brief Registers listener which receives all the inline query. - * @param listener Listener. - */ - inline void onInlineQuery(const InlineQueryListener& listener) { - _onInlineQueryListeners.push_back(listener); - } - - /** - * @brief Registers listener which receives all the chosen inline result. - * @param listener Listener. - */ - inline void onChosenInlineResult(const ChosenInlineResultListener& listener){ - _onChosenInlineResultListeners.push_back(listener); - } - - inline void onCallbackQuery(const CallbackQueryListener& listener){ - _onCallbackQueryListeners.push_back(listener); - } + typedef std::function MessageListener; + typedef std::function InlineQueryListener; + typedef std::function ChosenInlineResultListener; + typedef std::function CallbackQueryListener; + + /** + * @brief Registers listener which receives all messages which the bot can ever receive. + * @param listener Listener. + */ + inline void onAnyMessage(const MessageListener& listener) { + _onAnyMessageListeners.push_back(listener); + } + + /** + * @brief Registers listener which receives all messages with commands (messages with leading '/' char). + * @param commandName Command name which listener can handle. + * @param listener Listener. + */ + inline void onCommand(const std::string& commandName, const MessageListener& listener) { + _onCommandListeners[commandName] = listener; + } + + /** + * @brief Registers listener which receives all messages with commands (messages with leading '/' char). + * @param commandsList Commands names which listener can handle. + * @param listener Listener. + */ + inline void onCommand(const std::initializer_list& commandsList, const MessageListener& listener) { + for (const auto& command : commandsList) + { + _onCommandListeners[command] = listener; + } + } + + /** + * @brief Registers listener which receives all messages with commands (messages with leading '/' char) which haven't been handled by other listeners. + * @param listener Listener. + */ + inline void onUnknownCommand(const MessageListener& listener) { + _onUnknownCommandListeners.push_back(listener); + } + + /** + * @brief Registers listener which receives all messages without commands (messages with no leading '/' char) + * @param listener Listener. + */ + inline void onNonCommandMessage(const MessageListener& listener) { + _onNonCommandMessageListeners.push_back(listener); + } + + /** + * @brief Registers listener which receives all the inline query. + * @param listener Listener. + */ + inline void onInlineQuery(const InlineQueryListener& listener) { + _onInlineQueryListeners.push_back(listener); + } + + /** + * @brief Registers listener which receives all the chosen inline result. + * @param listener Listener. + */ + inline void onChosenInlineResult(const ChosenInlineResultListener& listener){ + _onChosenInlineResultListeners.push_back(listener); + } + + inline void onCallbackQuery(const CallbackQueryListener& listener){ + _onCallbackQueryListeners.push_back(listener); + } private: - template - inline void broadcast(const std::vector& listeners, const ObjectType object) const { - if (!object) - return; - - for (const ListenerType& item : listeners) { - item(object); - } - } - - inline void broadcastAnyMessage(const Message::Ptr message) const { - broadcast(_onAnyMessageListeners, message); - } - - inline bool broadcastCommand(const std::string command, const Message::Ptr message) const { - std::unordered_map::const_iterator iter = _onCommandListeners.find(command); - if (iter == _onCommandListeners.end()) { - return false; - } - iter->second(message); - return true; - } - - inline void broadcastUnknownCommand(const Message::Ptr message) const { - broadcast(_onUnknownCommandListeners, message); - } - - inline void broadcastNonCommandMessage(const Message::Ptr message) const { - broadcast(_onNonCommandMessageListeners, message); - } - - inline void broadcastInlineQuery(const InlineQuery::Ptr query) const { - broadcast(_onInlineQueryListeners, query); - } - - inline void broadcastChosenInlineResult(const ChosenInlineResult::Ptr result) const { - broadcast(_onChosenInlineResultListeners, result); - } - - inline void broadcastCallbackQuery(const CallbackQuery::Ptr result) const { - broadcast(_onCallbackQueryListeners, result); - } - - std::vector _onAnyMessageListeners; - std::unordered_map _onCommandListeners; - std::vector _onUnknownCommandListeners; - std::vector _onNonCommandMessageListeners; - std::vector _onInlineQueryListeners; - std::vector _onChosenInlineResultListeners; - std::vector _onCallbackQueryListeners; + template + inline void broadcast(const std::vector& listeners, const ObjectType object) const { + if (!object) + return; + + for (const ListenerType& item : listeners) { + item(object); + } + } + + inline void broadcastAnyMessage(const Message::Ptr message) const { + broadcast(_onAnyMessageListeners, message); + } + + inline bool broadcastCommand(const std::string command, const Message::Ptr message) const { + std::unordered_map::const_iterator iter = _onCommandListeners.find(command); + if (iter == _onCommandListeners.end()) { + return false; + } + iter->second(message); + return true; + } + + inline void broadcastUnknownCommand(const Message::Ptr message) const { + broadcast(_onUnknownCommandListeners, message); + } + + inline void broadcastNonCommandMessage(const Message::Ptr message) const { + broadcast(_onNonCommandMessageListeners, message); + } + + inline void broadcastInlineQuery(const InlineQuery::Ptr query) const { + broadcast(_onInlineQueryListeners, query); + } + + inline void broadcastChosenInlineResult(const ChosenInlineResult::Ptr result) const { + broadcast(_onChosenInlineResultListeners, result); + } + + inline void broadcastCallbackQuery(const CallbackQuery::Ptr result) const { + broadcast(_onCallbackQueryListeners, result); + } + + std::vector _onAnyMessageListeners; + std::unordered_map _onCommandListeners; + std::vector _onUnknownCommandListeners; + std::vector _onNonCommandMessageListeners; + std::vector _onInlineQueryListeners; + std::vector _onChosenInlineResultListeners; + std::vector _onCallbackQueryListeners; }; } -- cgit v1.2.3