Package com.sissi.pipeline.in.iq.bind

Source Code of com.sissi.pipeline.in.iq.bind.BindAddressCloseOthersProcessor

package com.sissi.pipeline.in.iq.bind;

import com.sissi.context.JIDContext;
import com.sissi.pipeline.in.ProxyProcessor;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.Stream;
import com.sissi.protocol.message.Body;
import com.sissi.protocol.message.Message;
import com.sissi.protocol.message.MessageType;

/**
* Resource重复资源绑定则终止其他JIDContext
*
* @author kim 2013-10-29
*/
public class BindAddressCloseOthersProcessor extends ProxyProcessor {

  private final Body body;

  /**
   * JIDContext下线提示, Message.type = headline
   *
   * @param content
   */
  public BindAddressCloseOthersProcessor(String content) {
    super();
    this.body = new Body(content);
  }

  @Override
  public boolean input(JIDContext context, Protocol protocol) {
    return super.resources(context.jid(), true).isEmpty() ? true : super.findOne(context.jid(), true, true).write(new Message().body(this.body).setType(MessageType.HEADLINE).setFrom(context.domain())).write(Stream.closeGraceFully()).close();
  }
}
TOP

Related Classes of com.sissi.pipeline.in.iq.bind.BindAddressCloseOthersProcessor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.