summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-10-27 21:22:16 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-10-29 18:09:04 (GMT)
commitbbd3bbf5747c28ec5925a89ea43fd4767d135f6e (patch)
tree7082ca4c7aa66cf66e3b1ebb24a90a5c1d37a1cd /Swiften/Chat/ChatStateNotifier.h
parent420654a8e323beb7c8877453393568240a3f2a07 (diff)
downloadswift-bbd3bbf5747c28ec5925a89ea43fd4767d135f6e.zip
swift-bbd3bbf5747c28ec5925a89ea43fd4767d135f6e.tar.bz2
Make ChatStateNotifier use StanzaChannel directly.
Diffstat (limited to 'Swiften/Chat/ChatStateNotifier.h')
-rw-r--r--Swiften/Chat/ChatStateNotifier.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/Swiften/Chat/ChatStateNotifier.h b/Swiften/Chat/ChatStateNotifier.h
index 3889b9c..1185ed0 100644
--- a/Swiften/Chat/ChatStateNotifier.h
+++ b/Swiften/Chat/ChatStateNotifier.h
@@ -9,23 +9,39 @@
#include "Swiften/Base/boost_bsignals.h"
#include <boost/shared_ptr.hpp>
+#include "Swiften/Elements/Message.h"
#include "Swiften/Elements/ChatState.h"
+#include "Swiften/JID/JID.h"
namespace Swift {
+ class StanzaChannel;
+ class EntityCapsProvider;
+
class ChatStateNotifier {
public:
- ChatStateNotifier();
- void setContactHas85Caps(bool hasCaps);
+ ChatStateNotifier(StanzaChannel* stanzaChannel, const JID& contact, EntityCapsProvider* entityCapsManager);
+ ~ChatStateNotifier();
+
+ void setContact(const JID& contact);
+
+ void addChatStateRequest(Message::ref message);
+
void setUserIsTyping();
- void setContactIsOnline(bool online);
void userSentMessage();
void userCancelledNewMessage();
+
void receivedMessageFromContact(bool hasActiveElement);
+ void setContactIsOnline(bool online);
+
+ private:
bool contactShouldReceiveStates();
- void contactJIDHasChanged();
+ void changeState(ChatState::ChatStateType type);
+ void handleCapsChanged(const JID& contact);
- boost::signal<void (ChatState::ChatStateType)> onChatStateChanged;
private:
+ StanzaChannel* stanzaChannel_;
+ EntityCapsProvider* entityCapsManager_;
+ JID contact_;
bool contactHas85Caps_;
bool contactHasSentActive_;
bool userIsTyping_;