/* * 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 #include namespace Swift { class Bytestreams : public Payload { public: typedef boost::shared_ptr ref; struct StreamHost { StreamHost(const std::string& host = "", const JID& jid = JID(), int port = -1) : host(host), jid(jid), port(port) {} std::string host; JID jid; int port; }; Bytestreams() {} const std::string& getStreamID() const { return id; } void setStreamID(const std::string& id) { this->id = id; } const boost::optional& getUsedStreamHost() const { return usedStreamHost; } void setUsedStreamHost(const JID& host) { usedStreamHost = host; } const std::vector& getStreamHosts() const { return streamHosts; } void addStreamHost(const StreamHost& streamHost) { streamHosts.push_back(streamHost); } private: std::string id; boost::optional usedStreamHost; std::vector streamHosts; }; }