/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include #include #include #include namespace Swift { /** * XEP-0055 search payload. */ class SearchPayload : public Payload { public: typedef boost::shared_ptr ref; struct Item { std::string first; std::string last; std::string nick; std::string email; JID jid; }; SearchPayload() {} Form::ref getForm() const { return form; } void setForm(Form::ref f) { form = f; } const boost::optional& getInstructions() const { return instructions; } const boost::optional& getNick() const { return nick; } const boost::optional& getFirst() const { return first; } const boost::optional& getLast() const { return last; } const boost::optional& getEMail() const { return email; } void setInstructions(const std::string& v) { this->instructions = v; } void setNick(const std::string& v) { this->nick = v; } void setFirst(const std::string& v) { this->first = v; } void setLast(const std::string& v) { this->last = v; } void setEMail(const std::string& v) { this->email = v; } const std::vector& getItems() const { return items; } void addItem(const Item& item) { items.push_back(item); } private: Form::ref form; boost::optional instructions; boost::optional nick; boost::optional first; boost::optional last; boost::optional email; std::vector items; }; }