All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.leancloud.session.StaleMessageDepot Maven / Gradle / Ivy

package cn.leancloud.session;

import cn.leancloud.utils.StringUtil;

public class StaleMessageDepot {
  PersistentQueue messageDepot;
  private static final int MAXLENGTH = 50;

  public StaleMessageDepot(String depotName) {
    this.messageDepot = new PersistentQueue(depotName, String.class);
  }

  /**
   *
   * @param messageId
   * @return false if message arrived before. true
   */
  public synchronized boolean putStableMessage(String messageId) {
    if (StringUtil.isEmpty(messageId)) {
      return true;
    }
    boolean isContains = messageDepot.contains(messageId);
    if (!isContains) {
      messageDepot.offer(messageId);
      while (messageDepot.size() > MAXLENGTH) {
        messageDepot.poll();
      }
    }
    return !isContains;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy