导航菜单

页面标题

页面副标题

95爱播免登录版 v3.1.9 - PEPManager.java 源代码

正在查看: 95爱播免登录版 v3.1.9 应用的 PEPManager.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package org.jivesoftware.smackx;

import java.util.ArrayList;
import java.util.List;
import org.jivesoftware.smack.Connection;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.filter.PacketExtensionFilter;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Packet;
import org.jivesoftware.smackx.packet.PEPEvent;
import org.jivesoftware.smackx.packet.PEPItem;
import org.jivesoftware.smackx.packet.PEPPubSub;

public class PEPManager {
    private Connection connection;
    private PacketListener packetListener;
    private List<PEPListener> pepListeners = new ArrayList();
    private PacketFilter packetFilter = new PacketExtensionFilter("event", "http://jabber.org/protocol/pubsub#event");

    public PEPManager(Connection connection) {
        this.connection = connection;
        init();
    }

    public void firePEPListeners(String str, PEPEvent pEPEvent) {
        int size;
        PEPListener[] pEPListenerArr;
        synchronized (this.pepListeners) {
            size = this.pepListeners.size();
            pEPListenerArr = new PEPListener[size];
            this.pepListeners.toArray(pEPListenerArr);
        }
        for (int i2 = 0; i2 < size; i2++) {
            pEPListenerArr[i2].eventReceived(str, pEPEvent);
        }
    }

    private void init() {
        PacketListener packetListener = new PacketListener() {
            @Override
            public void processPacket(Packet packet) {
                Message message = (Message) packet;
                PEPManager.this.firePEPListeners(message.getFrom(), message.getExtension("event", "http://jabber.org/protocol/pubsub#event"));
            }
        };
        this.packetListener = packetListener;
        this.connection.addPacketListener(packetListener, this.packetFilter);
    }

    public void addPEPListener(PEPListener pEPListener) {
        synchronized (this.pepListeners) {
            if (!this.pepListeners.contains(pEPListener)) {
                this.pepListeners.add(pEPListener);
            }
        }
    }

    public void destroy() {
        Connection connection = this.connection;
        if (connection != null) {
            connection.removePacketListener(this.packetListener);
        }
    }

    protected void finalize() throws Throwable {
        destroy();
        super.finalize();
    }

    public void publish(PEPItem pEPItem) {
        PEPPubSub pEPPubSub = new PEPPubSub(pEPItem);
        pEPPubSub.setType(IQ.Type.SET);
        this.connection.sendPacket(pEPPubSub);
    }

    public void removePEPListener(PEPListener pEPListener) {
        synchronized (this.pepListeners) {
            this.pepListeners.remove(pEPListener);
        }
    }
}