summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-01-03 09:42:47 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-01-03 09:42:47 (GMT)
commite30322061756a64cd23d949e16f21dfe2f18b192 (patch)
tree46ddb8fc61f4741107c8cb91f22ef66b4770324c /Swiften/Elements/Presence.h
parent09400aab33c46b7136bf7d0fab149641578e3c77 (diff)
downloadswift-e30322061756a64cd23d949e16f21dfe2f18b192.zip
swift-e30322061756a64cd23d949e16f21dfe2f18b192.tar.bz2
Don't send caps info and vcard info twice.
Diffstat (limited to 'Swiften/Elements/Presence.h')
-rw-r--r--Swiften/Elements/Presence.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/Swiften/Elements/Presence.h b/Swiften/Elements/Presence.h
index a1f15fa..f748e44 100644
--- a/Swiften/Elements/Presence.h
+++ b/Swiften/Elements/Presence.h
@@ -7,52 +7,56 @@
namespace Swift {
class Presence : public Stanza
{
public:
enum Type { Available, Error, Probe, Subscribe, Subscribed, Unavailable, Unsubscribe, Unsubscribed };
Presence() : type_(Available) /*, showType_(Online)*/ {}
Presence(const String& status) : type_(Available) {
setStatus(status);
}
Type getType() const { return type_; }
void setType(Type type) { type_ = type; }
StatusShow::Type getShow() const {
boost::shared_ptr<StatusShow> show(getPayload<StatusShow>());
if (show) {
return show->getType();
}
return type_ == Available ? StatusShow::Online : StatusShow::None;
}
void setShow(const StatusShow::Type &show) {
updatePayload(boost::shared_ptr<StatusShow>(new StatusShow(show)));
}
String getStatus() const {
boost::shared_ptr<Status> status(getPayload<Status>());
if (status) {
return status->getText();
}
return "";
}
void setStatus(const String& status) {
updatePayload(boost::shared_ptr<Status>(new Status(status)));
}
int getPriority() const {
boost::shared_ptr<Priority> priority(getPayload<Priority>());
return (priority ? priority->getPriority() : 0);
}
void setPriority(int priority) {
updatePayload(boost::shared_ptr<Priority>(new Priority(priority)));
}
+ boost::shared_ptr<Presence> clone() const {
+ return boost::shared_ptr<Presence>(new Presence(*this));
+ }
+
private:
Presence::Type type_;
};
}