diff options
author | Tarun Gupta <tarun1995gupta@gmail.com> | 2015-07-29 15:54:09 (GMT) |
---|---|---|
committer | Alex Clayton <alex.clayton@isode.com> | 2016-01-14 15:38:31 (GMT) |
commit | 72249383639858b1a7947b1afc6b9491ebd82bf8 (patch) | |
tree | 03af3e75006a133ee365116384bcc659543e183e /src/com/isode/stroke/jingle/FakeJingleSession.java | |
parent | 701abcb162dfb3e7cc8c6a9ada81a16d1fc8d4ee (diff) | |
download | stroke-72249383639858b1a7947b1afc6b9491ebd82bf8.zip stroke-72249383639858b1a7947b1afc6b9491ebd82bf8.tar.bz2 |
Completes Jingle.
Adds Listenable, JingleSession, JingleContentID, FakeJingleSession, JingleSessionListener,
JingleSessionManager, JingleResponder.
NotifyListeners are not in line with Swiften and have to be corrected.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
None.
Change-Id: I6533b2be02a0843277a63ca115348ff6138a0fc0
Diffstat (limited to 'src/com/isode/stroke/jingle/FakeJingleSession.java')
-rw-r--r-- | src/com/isode/stroke/jingle/FakeJingleSession.java | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/src/com/isode/stroke/jingle/FakeJingleSession.java b/src/com/isode/stroke/jingle/FakeJingleSession.java new file mode 100644 index 0000000..927c262 --- /dev/null +++ b/src/com/isode/stroke/jingle/FakeJingleSession.java @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2011 Tobias Markmann + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ +/* + * Copyright (c) 2013-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.jingle; + +import com.isode.stroke.elements.JinglePayload; +import com.isode.stroke.elements.JingleDescription; +import com.isode.stroke.elements.JingleTransportPayload; +import com.isode.stroke.elements.Payload; +import com.isode.stroke.jingle.JingleContentID; +import com.isode.stroke.jingle.JingleSession; +import com.isode.stroke.jid.JID; +import com.isode.stroke.base.SimpleIDGenerator; +import com.isode.stroke.signals.Slot1; +import com.isode.stroke.signals.Slot2; +import com.isode.stroke.signals.Slot3; +import java.util.Vector; + +public class FakeJingleSession extends JingleSession { + + public interface Command { + + } + + public class InitiateCall implements Command { + public InitiateCall(JingleContentID contentId, JingleDescription desc, JingleTransportPayload payL) { + this.id = contentId; + this.description = desc; + this.payload = payL; + } + public JingleContentID id; + public JingleDescription description; + public JingleTransportPayload payload; + }; + + public class TerminateCall implements Command { + public TerminateCall(JinglePayload.Reason.Type r) { + this.reason = r; + } + public JinglePayload.Reason.Type reason; + }; + + public class InfoCall implements Command { + public InfoCall(Payload info){ + this.payload = info; + } + public Payload payload; + }; + + public class AcceptCall implements Command { + public AcceptCall(JingleContentID contentId, JingleDescription desc, JingleTransportPayload payL) { + this.id = contentId; + this.description = desc; + this.payload = payL; + } + public JingleContentID id; + public JingleDescription description; + public JingleTransportPayload payload; + }; + + public class InfoTransportCall implements Command { + public InfoTransportCall(JingleContentID contentId, JingleTransportPayload payL) { + this.id = contentId; + this.payload = payL; + } + public JingleContentID id; + public JingleTransportPayload payload; + }; + + public class AcceptTransportCall implements Command { + public AcceptTransportCall(JingleContentID contentId, JingleTransportPayload payL) { + this.id = contentId; + this.payload = payL; + } + public JingleContentID id; + public JingleTransportPayload payload; + }; + + public class RejectTransportCall implements Command { + public RejectTransportCall(JingleContentID contentId, JingleTransportPayload payL) { + this.id = contentId; + this.payload = payL; + } + public JingleContentID id; + public JingleTransportPayload payload; + }; + + public class ReplaceTransportCall implements Command { + public ReplaceTransportCall(JingleContentID contentId, JingleTransportPayload payL) { + this.id = contentId; + this.payload = payL; + } + public JingleContentID id; + public JingleTransportPayload payload; + }; + + public Vector<Command> calledCommands = new Vector<Command>(); + public SimpleIDGenerator idGenerator = new SimpleIDGenerator(); + + public FakeJingleSession(final JID initiator, final String id) { + super(initiator, id); + } + + public void sendInitiate(final JingleContentID id, JingleDescription desc, JingleTransportPayload payload) { + calledCommands.add(new InitiateCall(id, desc, payload)); + } + + public void sendTerminate(JinglePayload.Reason.Type reason) { + calledCommands.add(new TerminateCall(reason)); + } + + public void sendInfo(Payload payload) { + calledCommands.add(new InfoCall(payload)); + } + + public void sendAccept(final JingleContentID id, JingleDescription desc) { + sendAccept(id, desc, null); + } + + public void sendAccept(final JingleContentID id, JingleDescription desc, JingleTransportPayload payload) { + calledCommands.add(new AcceptCall(id, desc, payload)); + } + + public String sendTransportInfo(final JingleContentID id, JingleTransportPayload payload) { + calledCommands.add(new InfoTransportCall(id, payload)); + return idGenerator.generateID(); + } + + public void sendTransportAccept(final JingleContentID id, JingleTransportPayload payload) { + calledCommands.add(new AcceptTransportCall(id, payload)); + } + + public void sendTransportReject(final JingleContentID id, JingleTransportPayload payload) { + calledCommands.add(new RejectTransportCall(id, payload)); + } + + public void sendTransportReplace(final JingleContentID id, JingleTransportPayload payload) { + calledCommands.add(new ReplaceTransportCall(id, payload)); + } + + public void handleSessionTerminateReceived(final JinglePayload.Reason reason) { + notifyListeners(new Slot1<JinglePayload.Reason>() { + @Override + public void call(JinglePayload.Reason reason) { + handleSessionTerminateReceived(reason); + } + }, reason); + } + + public void handleSessionAcceptReceived(final JingleContentID id, JingleDescription desc, JingleTransportPayload transport) { + notifyListeners(new Slot3<JingleContentID, JingleDescription, JingleTransportPayload>() { + @Override + public void call(JingleContentID d, JingleDescription n, JingleTransportPayload p) { + handleSessionAcceptReceived(d, n, p); + } + }, id, desc, transport); + } + + public void handleSessionInfoReceived(JinglePayload payload) { + + } + + public void handleTransportReplaceReceived(final JingleContentID id, JingleTransportPayload payload) { + notifyListeners(new Slot2<JingleContentID, JingleTransportPayload>() { + @Override + public void call(JingleContentID d, JingleTransportPayload p) { + handleTransportReplaceReceived(d, p); + } + }, id, payload); + } + + public void handleTransportAcceptReceived(final JingleContentID id, JingleTransportPayload payload) { + notifyListeners(new Slot2<JingleContentID, JingleTransportPayload>() { + @Override + public void call(JingleContentID d, JingleTransportPayload p) { + handleTransportAcceptReceived(d, p); + } + }, id, payload); + } + + public void handleTransportInfoReceived(final JingleContentID id, JingleTransportPayload payload) { + notifyListeners(new Slot2<JingleContentID, JingleTransportPayload>() { + @Override + public void call(JingleContentID d, JingleTransportPayload p) { + handleTransportInfoReceived(d, p); + } + }, id, payload); + } + + public void handleTransportRejectReceived(final JingleContentID id, JingleTransportPayload payload) { + + } + + public void handleTransportInfoAcknowledged(final String id) { + + } +}
\ No newline at end of file |