package com.limegroup.gnutella.dht.io;
import org.limewire.mojito.Context;
import org.limewire.mojito.io.MessageDispatcher;
import org.limewire.mojito.io.MessageDispatcherFactory;
import org.limewire.security.SecureMessageVerifier;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.limegroup.gnutella.MessageRouter;
import com.limegroup.gnutella.UDPService;
import com.limegroup.gnutella.messages.MessageFactory;
/**
* Creates {@link LimeMessageDispatcherImpl}s.
*/
@Singleton
public class LimeMessageDispatcherFactoryImpl implements
MessageDispatcherFactory {
private final Provider<com.limegroup.gnutella.MessageDispatcher> messageDispatcher;
private final Provider<MessageRouter> messageRouter;
private final Provider<SecureMessageVerifier> secureMessageVerifier;
private final Provider<UDPService >udpService;
private final MessageFactory messageFactory;
@Inject
public LimeMessageDispatcherFactoryImpl(
Provider<com.limegroup.gnutella.MessageDispatcher> messageDispatcher,
Provider<MessageRouter> messageRouter,
Provider<SecureMessageVerifier> secureMessageVerifier, Provider<UDPService> udpService,
MessageFactory messageFactory) {
this.messageDispatcher = messageDispatcher;
this.messageRouter = messageRouter;
this.secureMessageVerifier = secureMessageVerifier;
this.udpService = udpService;
this.messageFactory = messageFactory;
}
public MessageDispatcher create(Context context) {
LimeMessageDispatcherImpl messageDispatcherImpl = new LimeMessageDispatcherImpl(context, udpService,
secureMessageVerifier, messageRouter, messageDispatcher, messageFactory);
return messageDispatcherImpl;
}
}