summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Client/Client.h')
-rw-r--r--Swiften/Client/Client.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/Swiften/Client/Client.h b/Swiften/Client/Client.h
index 9f3e935..bf19f2f 100644
--- a/Swiften/Client/Client.h
+++ b/Swiften/Client/Client.h
@@ -12,6 +12,7 @@ namespace Swift {
class SoftwareVersionResponder;
class XMPPRoster;
class XMPPRosterController;
+ class PresenceOracle;
/**
* Provides the core functionality for writing XMPP client software.
@@ -56,9 +57,35 @@ namespace Swift {
*/
void requestRoster();
+ /**
+ * Returns the last received presence for the given (full) JID.
+ */
+ Presence::ref getLastPresence(const JID& jid) const;
+
+ /**
+ * Returns the presence with the highest priority received for the given JID.
+ */
+ Presence::ref getHighestPriorityPresence(const JID& bareJID) const;
+
+ PresenceOracle* getPresenceOracle() const {
+ return presenceOracle;
+ }
+
+ public:
+ /**
+ * This signal is emitted when a JID changes presence.
+ */
+ boost::signal<void (boost::shared_ptr<Presence>)> onPresenceChange;
+
+ /**
+ * This signal is emitted when a presence subscription request is received.
+ */
+ boost::signal<void (const JID&, const String&)> onPresenceSubscriptionRequest;
+
private:
SoftwareVersionResponder* softwareVersionResponder;
XMPPRoster* roster;
XMPPRosterController* rosterController;
+ PresenceOracle* presenceOracle;
};
}