182 struct TransparentStringHash {
183 using is_transparent = void;
185 std::size_t operator()(std::string_view value)
const noexcept {
186 return std::hash<std::string_view> { }(value);
190 template<
typename ListenerType,
typename ObjectType>
191 void broadcast(
const std::vector<ListenerType>& listeners, ObjectType
object)
const;
193 void broadcastAnyMessage(
const std::shared_ptr<Message>& message)
const;
194 bool broadcastCommand(std::string_view command,
const std::shared_ptr<Message>& message)
const;
195 void broadcastUnknownCommand(
const std::shared_ptr<Message>& message)
const;
196 void broadcastNonCommandMessage(
const std::shared_ptr<Message>& message)
const;
197 void broadcastEditedMessage(
const std::shared_ptr<Message>& message)
const;
198 void broadcastInlineQuery(
const std::shared_ptr<InlineQuery>& query)
const;
199 void broadcastChosenInlineResult(
const std::shared_ptr<ChosenInlineResult>& result)
const;
200 void broadcastCallbackQuery(
const std::shared_ptr<CallbackQuery>& result)
const;
201 void broadcastShippingQuery(
const std::shared_ptr<ShippingQuery>& result)
const;
202 void broadcastPreCheckoutQuery(
const std::shared_ptr<PreCheckoutQuery>& result)
const;
203 void broadcastPoll(
const std::shared_ptr<Poll>& result)
const;
204 void broadcastPollAnswer(
const std::shared_ptr<PollAnswer>& result)
const;
205 void broadcastMyChatMember(
const std::shared_ptr<ChatMemberUpdated>& result)
const;
206 void broadcastChatMember(
const std::shared_ptr<ChatMemberUpdated>& result)
const;
207 void broadcastChatJoinRequest(
const std::shared_ptr<ChatJoinRequest>& result)
const;
208 void broadcastMessageReactionUpdated(
const std::shared_ptr<MessageReactionUpdated>& messageReaction)
const;
209 void broadcastMessageReactionCountUpdated(
210 const std::shared_ptr<MessageReactionCountUpdated>& messageReactionCount)
const;
212 broadcastMessageGenerationStopped(
const std::shared_ptr<MessageGenerationStopped>& messageGenerationStopped)
const;
213 void broadcastSuccessfulPayment(
const std::shared_ptr<Message>& message)
const;
215 std::vector<MessageListener> _onAnyMessageListeners;
216 std::unordered_map<std::string, MessageListener, TransparentStringHash, std::equal_to<>> _onCommandListeners;
217 std::vector<MessageListener> _onUnknownCommandListeners;
218 std::vector<MessageListener> _onNonCommandMessageListeners;
219 std::vector<MessageListener> _onEditedMessageListeners;
220 std::vector<InlineQueryListener> _onInlineQueryListeners;
221 std::vector<ChosenInlineResultListener> _onChosenInlineResultListeners;
222 std::vector<CallbackQueryListener> _onCallbackQueryListeners;
223 std::vector<ShippingQueryListener> _onShippingQueryListeners;
224 std::vector<PreCheckoutQueryListener> _onPreCheckoutQueryListeners;
225 std::vector<PollListener> _onPollListeners;
226 std::vector<PollAnswerListener> _onPollAnswerListeners;
227 std::vector<ChatMemberUpdatedListener> _onMyChatMemberListeners;
228 std::vector<ChatMemberUpdatedListener> _onChatMemberListeners;
229 std::vector<ChatJoinRequestListener> _onChatJoinRequestListeners;
230 std::vector<MessageReactionUpdatedListener> _onMessageReactionUpdatedListener;
231 std::vector<MessageReactionCountUpdatedListener> _onMessageReactionCountUpdatedListener;
232 std::vector<MessageGenerationStoppedListener> _onMessageGenerationStoppedListeners;
233 std::vector<SuccessfulPaymentListener> _onSuccessfulPaymentListeners;