package com.sissi.pipeline.in.presence.init;
import com.sissi.context.JIDContext;
import com.sissi.pipeline.Input;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.presence.Presence;
import com.sissi.protocol.presence.PresenceType;
import com.sissi.ucenter.relation.Relation;
import com.sissi.ucenter.relation.roster.RelationAck;
/**
* 离线邀请
*
* @author kim 2014年2月19日
*/
public class PresenceInit4SubscribeProcessor implements Input {
private final RelationAck ack;
public PresenceInit4SubscribeProcessor(RelationAck ack) {
super();
this.ack = ack;
}
@Override
public boolean input(JIDContext context, Protocol protocol) {
return this.writeAsk(context);
}
private boolean writeAsk(JIDContext context) {
Presence presence = new Presence().type(PresenceType.SUBSCRIBE);
for (Relation relation : this.ack.ack(context.jid())) {
context.write(presence.setFrom(relation.jid()), true);
}
return true;
}
}