package org.eclipse.paho.mqttv5.client.internal;

import com.seewo.vcommons.utils.ShellCommandUtils;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
import org.eclipse.paho.mqttv5.client.MqttToken;
import org.eclipse.paho.mqttv5.client.logging.Logger;
import org.eclipse.paho.mqttv5.client.logging.LoggerFactory;
import org.eclipse.paho.mqttv5.common.MqttException;
import org.eclipse.paho.mqttv5.common.packet.MqttPublish;
import org.eclipse.paho.mqttv5.common.packet.MqttWireMessage;

/* JADX INFO: loaded from: classes2.dex */
public class CommsTokenStore {
    private static final String CLASS_NAME = "org.eclipse.paho.mqttv5.client.internal.CommsTokenStore";
    private MqttException closedResponse;
    private Logger log;
    private String logContext;
    private final Hashtable<String, MqttToken> tokens;

    public CommsTokenStore(String str) {
        String str2 = CLASS_NAME;
        Logger logger = LoggerFactory.getLogger(LoggerFactory.MQTT_CLIENT_MSG_CAT, str2);
        this.log = logger;
        this.closedResponse = null;
        logger.setResourceName(str);
        this.tokens = new Hashtable<>();
        this.logContext = str;
        this.log.fine(str2, "<Init>", "308");
    }

    public MqttToken getToken(MqttWireMessage mqttWireMessage) {
        return this.tokens.get(mqttWireMessage.getKey());
    }

    public MqttToken getToken(String str) {
        return this.tokens.get(str);
    }

    public MqttToken removeToken(MqttWireMessage mqttWireMessage) {
        if (mqttWireMessage != null) {
            return removeToken(mqttWireMessage.getKey());
        }
        return null;
    }

    public MqttToken removeToken(String str) {
        this.log.fine(CLASS_NAME, "removeToken", "306", new Object[]{str});
        if (str != null) {
            return this.tokens.remove(str);
        }
        return null;
    }

    protected MqttToken restoreToken(MqttPublish mqttPublish) {
        MqttToken mqttToken;
        synchronized (this.tokens) {
            String string = Integer.valueOf(mqttPublish.getMessageId()).toString();
            if (this.tokens.containsKey(string)) {
                mqttToken = this.tokens.get(string);
                this.log.fine(CLASS_NAME, "restoreToken", "302", new Object[]{string, mqttPublish, mqttToken});
            } else {
                mqttToken = new MqttToken(this.logContext);
                mqttToken.internalTok.setDeliveryToken(true);
                mqttToken.internalTok.setKey(string);
                this.tokens.put(string, mqttToken);
                this.log.fine(CLASS_NAME, "restoreToken", "303", new Object[]{string, mqttPublish, mqttToken});
            }
        }
        return mqttToken;
    }

    protected void saveToken(MqttToken mqttToken, MqttWireMessage mqttWireMessage) throws MqttException {
        synchronized (this.tokens) {
            MqttException mqttException = this.closedResponse;
            if (mqttException == null) {
                String key = mqttWireMessage.getKey();
                this.log.fine(CLASS_NAME, "saveToken", "300", new Object[]{key, mqttWireMessage});
                saveToken(mqttToken, key);
            } else {
                throw mqttException;
            }
        }
    }

    protected void saveToken(MqttToken mqttToken, String str) {
        synchronized (this.tokens) {
            this.log.fine(CLASS_NAME, "saveToken", "307", new Object[]{str, mqttToken.toString()});
            mqttToken.internalTok.setKey(str);
            this.tokens.put(str, mqttToken);
        }
    }

    protected void quiesce(MqttException mqttException) {
        synchronized (this.tokens) {
            this.log.fine(CLASS_NAME, "quiesce", "309", new Object[]{mqttException});
            this.closedResponse = mqttException;
        }
    }

    public void open() {
        synchronized (this.tokens) {
            this.log.fine(CLASS_NAME, "open", "310");
            this.closedResponse = null;
        }
    }

    public MqttToken[] getOutstandingDelTokens() {
        MqttToken[] mqttTokenArr;
        synchronized (this.tokens) {
            this.log.fine(CLASS_NAME, "getOutstandingDelTokens", "311");
            Vector vector = new Vector();
            Enumeration<MqttToken> enumerationElements = this.tokens.elements();
            while (enumerationElements.hasMoreElements()) {
                MqttToken mqttTokenNextElement = enumerationElements.nextElement();
                if (mqttTokenNextElement != null && mqttTokenNextElement.internalTok.isDeliveryToken() && !mqttTokenNextElement.internalTok.isNotified()) {
                    vector.addElement(mqttTokenNextElement);
                }
            }
            mqttTokenArr = (MqttToken[]) vector.toArray(new MqttToken[vector.size()]);
        }
        return mqttTokenArr;
    }

    public Vector<MqttToken> getOutstandingTokens() {
        Vector<MqttToken> vector;
        synchronized (this.tokens) {
            this.log.fine(CLASS_NAME, "getOutstandingTokens", "312");
            vector = new Vector<>();
            Enumeration<MqttToken> enumerationElements = this.tokens.elements();
            while (enumerationElements.hasMoreElements()) {
                MqttToken mqttTokenNextElement = enumerationElements.nextElement();
                if (mqttTokenNextElement != null) {
                    vector.addElement(mqttTokenNextElement);
                }
            }
        }
        return vector;
    }

    public void clear() {
        this.log.fine(CLASS_NAME, "clear", "305", new Object[]{Integer.valueOf(this.tokens.size())});
        synchronized (this.tokens) {
            this.tokens.clear();
        }
    }

    public int count() {
        int size;
        synchronized (this.tokens) {
            size = this.tokens.size();
        }
        return size;
    }

    public String toString() {
        String string;
        String property = System.getProperty("line.separator", ShellCommandUtils.COMMAND_LINE_END);
        StringBuffer stringBuffer = new StringBuffer();
        synchronized (this.tokens) {
            Enumeration<MqttToken> enumerationElements = this.tokens.elements();
            while (enumerationElements.hasMoreElements()) {
                stringBuffer.append("{" + enumerationElements.nextElement().internalTok + "}" + property);
            }
            string = stringBuffer.toString();
        }
        return string;
    }
}
