diff options
Diffstat (limited to 'src/com/isode/stroke/elements/JingleS5BTransportPayload.java')
-rw-r--r-- | src/com/isode/stroke/elements/JingleS5BTransportPayload.java | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/src/com/isode/stroke/elements/JingleS5BTransportPayload.java b/src/com/isode/stroke/elements/JingleS5BTransportPayload.java new file mode 100644 index 0000000..e9ee67f --- /dev/null +++ b/src/com/isode/stroke/elements/JingleS5BTransportPayload.java @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2011-2015 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ +/* + * Copyright (c) 2015 Tarun Gupta. + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +package com.isode.stroke.elements; + +import com.isode.stroke.elements.JingleTransportPayload; +import com.isode.stroke.elements.Bytestreams; +import com.isode.stroke.network.HostAddressPort; +import com.isode.stroke.jid.JID; +import com.isode.stroke.base.NotNull; +import java.util.Vector; + +public class JingleS5BTransportPayload extends JingleTransportPayload { + + public enum Mode { + TCPMode, // default case + UDPMode + }; + + public static class Candidate { + + public enum Type { + DirectType, // default case + AssistedType, + TunnelType, + ProxyType + }; + + public String cid = ""; + public JID jid = new JID(); + public HostAddressPort hostPort; + public int priority; + public Type type; + + public Candidate() { + this.priority = 0; + this.type = Type.DirectType; + } + } + + public class CompareCandidate { + public boolean compareTo(JingleS5BTransportPayload.Candidate c1, JingleS5BTransportPayload.Candidate c2) { + return (c1.priority < c2.priority); + } + } + + private Mode mode; + private Vector<Candidate> candidates = new Vector<Candidate>(); + + private String candidateUsedCID = ""; + private String activatedCID = ""; + private String dstAddr = ""; + private boolean candidateError; + private boolean proxyError; + + public JingleS5BTransportPayload() { + this.mode = Mode.TCPMode; + this.candidateError = false; + this.proxyError = false; + } + + /** + * @return mode, Not Null. + */ + public Mode getMode() { + return mode; + } + + /** + * @param mode, Not Null. + */ + public void setMode(Mode mode) { + NotNull.exceptIfNull(mode, "mode"); + this.mode = mode; + } + + /** + * @return candidates, Not Null. + */ + public Vector<Candidate> getCandidates() { + return candidates; + } + + /** + * @param candidate, NotNull. + */ + public void addCandidate(Candidate candidate) { + NotNull.exceptIfNull(candidate, "candidate"); + candidates.add(candidate); + } + + /** + * @param cid, NotNull. + */ + public void setCandidateUsed(String cid) { + NotNull.exceptIfNull(cid, "cid"); + candidateUsedCID = cid; + } + + /** + * @return candidateUsedCID, Not Null. + */ + public String getCandidateUsed() { + return candidateUsedCID; + } + + /** + * @param cid, NotNull. + */ + public void setActivated(String cid) { + NotNull.exceptIfNull(cid, "cid"); + activatedCID = cid; + } + + /** + * @return activatedCID, Not Null. + */ + public String getActivated() { + return activatedCID; + } + + /** + * @param addr, NotNull. + */ + public void setDstAddr(String addr) { + NotNull.exceptIfNull(addr, "addr"); + dstAddr = addr; + } + + /** + * @return dstAddr, Not Null. + */ + public String getDstAddr() { + return dstAddr; + } + + /** + * @param candidateError. + */ + public void setCandidateError(boolean hasError) { + candidateError = hasError; + } + + /** + * @return candidateError. + */ + public boolean hasCandidateError() { + return candidateError; + } + + /** + * @param proxyError. + */ + public void setProxyError(boolean hasError) { + proxyError = hasError; + } + + /** + * @return proxyError. + */ + public boolean hasProxyError() { + return proxyError; + } +}
\ No newline at end of file |