diff options
-rw-r--r-- | Swiften/Elements/JingleRawUDPTransportPayload.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Swiften/Elements/JingleRawUDPTransportPayload.h b/Swiften/Elements/JingleRawUDPTransportPayload.h new file mode 100644 index 0000000..ecd6539 --- /dev/null +++ b/Swiften/Elements/JingleRawUDPTransportPayload.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2012 Yoann Blein + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <vector> + +#include <boost/shared_ptr.hpp> + +#include <Swiften/Elements/JingleTransportPayload.h> +#include <Swiften/Network/HostAddressPort.h> + + +namespace Swift { + class JingleRawUDPTransportPayload : public JingleTransportPayload { + public: + struct Candidate { + enum Type { + Unknown, // default case + Host, + PeerReflected, + Relayed, + ServerReflected, + }; + + Candidate() : component(0), generation(0), type(Unknown) {} + + boost::uint8_t component; + boost::uint8_t generation; + std::string cid; + HostAddressPort hostAddressPort; + Type type; + }; + + public: + typedef boost::shared_ptr<JingleRawUDPTransportPayload> ref; + + public: + JingleRawUDPTransportPayload() {} + + const std::vector<Candidate>& getCandidates() const { + return candidates; + } + + void addCandidate(const Candidate& candidate) { + candidates.push_back(candidate); + } + + private: + std::vector<Candidate> candidates; + }; +} |