/* * Jicofo, the Jitsi Conference Focus. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jitsi.impl.protocol.xmpp; import net.java.sip.communicator.util.*; import org.jitsi.protocol.xmpp.*; import org.jivesoftware.smack.*; import org.jivesoftware.smack.filter.*; /** * Straightforward implementation of {@link OperationSetDirectSmackXmpp} * for {@link org.jitsi.impl.protocol.xmpp.XmppProtocolProvider}. * * @author Pawel Domas */ public class OpSetDirectSmackXmppImpl implements OperationSetDirectSmackXmpp { /** * The logger used by this class. */ private final static Logger logger = Logger.getLogger(OpSetDirectSmackXmppImpl.class); /** * Parent protocol provider service. */ private final XmppProtocolProvider xmppProvider; /** * Creates new instance of <tt>OpSetDirectSmackXmppImpl</tt>. * * @param xmppProvider parent {@link XmppProtocolProvider}. */ public OpSetDirectSmackXmppImpl(XmppProtocolProvider xmppProvider) { this.xmppProvider = xmppProvider; } /** * {@inheritDoc} */ @Override public XmppConnection getXmppConnection() { return xmppProvider.getConnectionAdapter(); } /** * {@inheritDoc} */ @Override public void addPacketHandler(PacketListener listener, PacketFilter filter) { XMPPConnection connection = xmppProvider.getConnection(); if (connection != null) { connection.addPacketListener(listener, filter); } else { logger.error("Failed to add packet handler: " + listener + " - no valid connection object"); } } /** * {@inheritDoc} */ @Override public void removePacketHandler(PacketListener listener) { XMPPConnection connection = xmppProvider.getConnection(); if (connection != null) { xmppProvider.getConnection().removePacketListener(listener); } else { logger.error("Failed to remove packet handler: " + listener + " - no valid connection object"); } } }