diff options
author | Florent Le Coz <louiz@louiz.org> | 2014-05-06 22:39:09 +0200 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2014-05-06 22:39:09 +0200 |
commit | f35db5cebaf1b9e267a7f2341699bb50fbc54c65 (patch) | |
tree | 25b6538c8b3520fb6bd362d367084271f5121c61 /src/xmpp | |
parent | 18b27793de8863f58b284ee791a8207a79738b85 (diff) | |
download | biboumi-f35db5cebaf1b9e267a7f2341699bb50fbc54c65.tar.gz biboumi-f35db5cebaf1b9e267a7f2341699bb50fbc54c65.tar.bz2 biboumi-f35db5cebaf1b9e267a7f2341699bb50fbc54c65.tar.xz biboumi-f35db5cebaf1b9e267a7f2341699bb50fbc54c65.zip |
Implement next_id() to
Diffstat (limited to 'src/xmpp')
-rw-r--r-- | src/xmpp/xmpp_component.cpp | 7 | ||||
-rw-r--r-- | src/xmpp/xmpp_component.hpp | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/xmpp/xmpp_component.cpp b/src/xmpp/xmpp_component.cpp index 60b12dd..9f62514 100644 --- a/src/xmpp/xmpp_component.cpp +++ b/src/xmpp/xmpp_component.cpp @@ -29,6 +29,8 @@ #define STANZA_NS "urn:ietf:params:xml:ns:xmpp-stanzas" #define STREAMS_NS "urn:ietf:params:xml:ns:xmpp-streams" +unsigned long XmppComponent::current_id = 0; + XmppComponent::XmppComponent(const std::string& hostname, const std::string& secret): ever_auth(false), last_auth(false), @@ -783,3 +785,8 @@ void XmppComponent::send_self_disco_info(const std::string& id, const std::strin iq.close(); this->send_stanza(iq); } + +std::string XmppComponent::next_id() +{ + return std::to_string(XmppComponent::current_id++); +} diff --git a/src/xmpp/xmpp_component.hpp b/src/xmpp/xmpp_component.hpp index aa19be3..f54ebd7 100644 --- a/src/xmpp/xmpp_component.hpp +++ b/src/xmpp/xmpp_component.hpp @@ -20,10 +20,16 @@ class XmppComponent: public SocketHandler public: explicit XmppComponent(const std::string& hostname, const std::string& secret); ~XmppComponent(); + void on_connection_failed(const std::string& reason) override final; void on_connected() override final; void on_connection_close() override final; void parse_in_buffer(const size_t size) override final; + + /** + * Returns a unique id, to be used in the 'id' element of our iq stanzas. + */ + static std::string next_id(); /** * Send a "close" message to all our connected peers. That message * depends on the protocol used (this may be a QUIT irc message, or a @@ -195,6 +201,8 @@ private: */ std::unordered_map<std::string, std::unique_ptr<Bridge>> bridges; + static unsigned long current_id; + XmppComponent(const XmppComponent&) = delete; XmppComponent(XmppComponent&&) = delete; XmppComponent& operator=(const XmppComponent&) = delete; @@ -202,4 +210,3 @@ private: }; #endif // XMPP_COMPONENT_INCLUDED - |