From d03eda27cdbe75470068d7513ecf510d8d342cf5 Mon Sep 17 00:00:00 2001 From: Oleg Morozenkov Date: Sun, 15 Jan 2017 02:46:48 +0300 Subject: Docs --- docs/_event_handler_8h_source.html | 109 +++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs/_event_handler_8h_source.html (limited to 'docs/_event_handler_8h_source.html') diff --git a/docs/_event_handler_8h_source.html b/docs/_event_handler_8h_source.html new file mode 100644 index 0000000..39cd023 --- /dev/null +++ b/docs/_event_handler_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +tgbot-cpp: include/tgbot/EventHandler.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
tgbot-cpp +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
EventHandler.h
+
+
+Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Oleg Morozenkov
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in all
12  * copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20  * SOFTWARE.
21  */
22 
23 #ifndef TGBOT_EVENTHANDLER_H
24 #define TGBOT_EVENTHANDLER_H
25 
26 #include "tgbot/EventBroadcaster.h"
27 #include "tgbot/types/Update.h"
29 
30 namespace TgBot {
31 
32 class EventHandler {
33 
34  void handleMessage(const Message::Ptr& message) const {
35  _broadcaster->broadcastAnyMessage(message);
36 
37  if (StringTools::startsWith(message->text, "/")) {
38  unsigned long splitPosition;
39  unsigned long spacePosition = message->text.find(' ');
40  unsigned long atSymbolPosition = message->text.find('@');
41  if (spacePosition == message->text.npos) {
42  if (atSymbolPosition == message->text.npos) {
43  splitPosition = message->text.size();
44  } else {
45  splitPosition = atSymbolPosition;
46  }
47  } else if (atSymbolPosition == message->text.npos) {
48  splitPosition = spacePosition;
49  } else {
50  splitPosition = std::min(spacePosition, atSymbolPosition);
51  }
52  std::string command = message->text.substr(1, splitPosition - 1);
53  if (!_broadcaster->broadcastCommand(command, message)) {
54  _broadcaster->broadcastUnknownCommand(message);
55  }
56  } else {
57  _broadcaster->broadcastNonCommandMessage(message);
58  }
59  };
60 
61 public:
62  explicit EventHandler(const EventBroadcaster* broadcaster) : _broadcaster(broadcaster) {
63  }
64 
65  inline void handleUpdate(const Update::Ptr& update) const {
66  if (update->inlineQuery != NULL)
67  _broadcaster->broadcastInlineQuery(update->inlineQuery);
68  if (update->chosenInlineResult != NULL)
69  _broadcaster->broadcastChosenInlineResult(update->chosenInlineResult);
70  if (update->callbackQuery != NULL)
71  _broadcaster->broadcastCallbackQuery(update->callbackQuery);
72  if (update->message != NULL)
73  handleMessage(update->message);
74  }
75 
76 private:
77  const EventBroadcaster* _broadcaster;
78 };
79 
80 }
81 
82 #endif //TGBOT_EVENTHANDLER_H
+ +
std::shared_ptr< Update > Ptr
Definition: Update.h:42
+
Definition: Api.h:44
+ + +
std::shared_ptr< Message > Ptr
Definition: Message.h:52
+ +
bool startsWith(const std::string &str1, const std::string &str2)
+
EventHandler(const EventBroadcaster *broadcaster)
Definition: EventHandler.h:62
+
void handleUpdate(const Update::Ptr &update) const
Definition: EventHandler.h:65
+
+
+ + + + -- cgit v1.2.3