1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2025-09-11 01:59:38 +02:00

Send session-accept/decline

This commit is contained in:
vanitasvitae 2017-06-19 15:26:10 +02:00
parent e0a54c19d6
commit 73f9af474e
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311
5 changed files with 137 additions and 20 deletions

View file

@ -0,0 +1,47 @@
package org.jivesoftware.smackx.jingle;
import java.util.HashMap;
import java.util.WeakHashMap;
import org.jivesoftware.smack.Manager;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smackx.jingle.element.Jingle;
import org.jivesoftware.smackx.jingle.element.JingleContent;
import org.jivesoftware.smackx.jingle.element.JingleContentTransport;
import org.jivesoftware.smackx.jingle.transports.JingleTransportManager;
/**
* Created by vanitas on 19.06.17.
*/
public final class JingleTransportMethodManager extends Manager {
private static final WeakHashMap<XMPPConnection, JingleTransportMethodManager> INSTANCES = new WeakHashMap<>();
private final HashMap<String, JingleTransportManager<?>> transportManagers = new HashMap<>();
private JingleTransportMethodManager(XMPPConnection connection) {
super(connection);
}
public static JingleTransportMethodManager getInstanceFor(XMPPConnection connection) {
JingleTransportMethodManager manager = INSTANCES.get(connection);
if (manager == null) {
manager = new JingleTransportMethodManager(connection);
INSTANCES.put(connection, manager);
}
return manager;
}
public void registerTransportManager(JingleTransportManager<?> manager) {
transportManagers.put(manager.getNamespace(), manager);
}
public JingleTransportManager<?> getTransportManager(String namespace) {
return transportManagers.get(namespace);
}
public JingleTransportManager<?> getTransportManager(Jingle request) {
JingleContent content = request.getContents().get(0);
JingleContentTransport transport = content.getJingleTransports().get(0);
return getTransportManager(transport.getNamespace());
}
}

View file

@ -0,0 +1,17 @@
package org.jivesoftware.smackx.jingle.transports;
import org.jivesoftware.smackx.jingle.element.Jingle;
import org.jivesoftware.smackx.jingle.element.JingleContentTransport;
/**
* Created by vanitas on 19.06.17.
*/
public abstract class JingleTransportManager<D extends JingleContentTransport> {
public abstract String getNamespace();
public abstract D createTransport();
public abstract D createTransport(Jingle request);
}