package net.sf.briar.protocol; import java.io.InputStream; import net.sf.briar.api.protocol.Ack; import net.sf.briar.api.protocol.Batch; import net.sf.briar.api.protocol.Offer; import net.sf.briar.api.protocol.ProtocolReader; import net.sf.briar.api.protocol.ProtocolReaderFactory; import net.sf.briar.api.protocol.Request; import net.sf.briar.api.protocol.SubscriptionUpdate; import net.sf.briar.api.protocol.TransportUpdate; import net.sf.briar.api.serial.ObjectReader; import net.sf.briar.api.serial.ReaderFactory; import com.google.inject.Inject; import com.google.inject.Provider; class ProtocolReaderFactoryImpl implements ProtocolReaderFactory { private final ReaderFactory readerFactory; private final Provider> ackProvider; private final Provider> batchProvider; private final Provider> offerProvider; private final Provider> requestProvider; private final Provider> subscriptionProvider; private final Provider> transportProvider; @Inject ProtocolReaderFactoryImpl(ReaderFactory readerFactory, Provider> ackProvider, Provider> batchProvider, Provider> offerProvider, Provider> requestProvider, Provider> subscriptionProvider, Provider> transportProvider) { this.readerFactory = readerFactory; this.ackProvider = ackProvider; this.batchProvider = batchProvider; this.offerProvider = offerProvider; this.requestProvider = requestProvider; this.subscriptionProvider = subscriptionProvider; this.transportProvider = transportProvider; } public ProtocolReader createProtocolReader(InputStream in) { return new ProtocolReaderImpl(in, readerFactory, ackProvider.get(), batchProvider.get(), offerProvider.get(), requestProvider.get(), subscriptionProvider.get(), transportProvider.get()); } }