• Main Page
  • Classes
  • Files
  • File List

Swiften/Elements/MUCUserPayload.h

00001 /*
00002  * Copyright (c) 2010 Kevin Smith
00003  * Licensed under the GNU General Public License v3.
00004  * See Documentation/Licenses/GPLv3.txt for more information.
00005  */
00006 
00007 #pragma once
00008 
00009 #include <boost/optional.hpp>
00010 #include <boost/shared_ptr.hpp>
00011 #include <string>
00012 #include <vector>
00013 
00014 #include <Swiften/JID/JID.h>
00015 #include <Swiften/Elements/Payload.h>
00016 #include <Swiften/Elements/MUCOccupant.h>
00017 #include <Swiften/Elements/MUCItem.h>
00018 
00019 namespace Swift {
00020   class MUCUserPayload : public Payload {
00021     public:
00022       typedef boost::shared_ptr<MUCUserPayload> ref;
00023 
00024       struct StatusCode {
00025         StatusCode() : code(0) {}
00026         StatusCode(int code) : code(code) {}
00027         int code;
00028       };
00029 
00030       //struct Password {
00031 
00032       //}
00033 
00034       // struct History {
00035 
00036       // }
00037 
00045       struct Invite {
00046         std::string reason;
00047         JID from;
00048         JID to;
00049       };
00050 
00051       MUCUserPayload() {
00052       }
00053 
00054       void addItem(const MUCItem& item) {items_.push_back(item);}
00055     
00056       void addStatusCode(StatusCode code) {statusCodes_.push_back(code);}
00057 
00058       const std::vector<MUCItem>& getItems() const {return items_;}
00059 
00060       const std::vector<StatusCode>& getStatusCodes() const {return statusCodes_;}
00061 
00062       boost::shared_ptr<Payload> getPayload() const {
00063         return payload_;
00064       }
00065 
00066       void setPayload(boost::shared_ptr<Payload> p) {
00067         payload_ = p;
00068       }
00069 
00070       const boost::optional<std::string>& getPassword() const {
00071         return password_;
00072       }
00073 
00074       void setPassword(const std::string& password) {
00075         password_ = password;
00076       }
00077 
00078 
00079       const boost::optional<Invite>& getInvite() const {
00080         return invite_;
00081       }
00082 
00083       void setInvite(const Invite& invite) {
00084         invite_ = invite;
00085       }
00086 
00087 
00088     private:
00089       std::vector<MUCItem> items_;
00090       std::vector<StatusCode> statusCodes_;
00091       boost::shared_ptr<Payload> payload_;
00092       boost::optional<std::string> password_;
00093       boost::optional<Invite> invite_;
00094   };
00095 }

Generated on Fri Oct 12 2012 21:00:19 for Swiften by  doxygen 1.7.1