/** * Dianping.com Inc. * Copyright (c) 00-0 All Rights Reserved. */ package com.dianping.pigeon.remoting.provider.process; import java.util.concurrent.Future; import com.dianping.pigeon.remoting.common.domain.InvocationRequest; import com.dianping.pigeon.remoting.common.domain.InvocationResponse; import com.dianping.pigeon.remoting.provider.config.ProviderConfig; import com.dianping.pigeon.remoting.provider.config.ServerConfig; import com.dianping.pigeon.remoting.provider.domain.ProviderContext; import com.dianping.pigeon.threadpool.ThreadPool; public interface RequestProcessor { void start(ServerConfig serverConfig); void stop(); Future<InvocationResponse> processRequest(final InvocationRequest request, final ProviderContext providerContext); String getProcessorStatistics(); String getProcessorStatistics(final InvocationRequest request); String getProcessorStatistics(final ThreadPool threadPool); <T> void addService(ProviderConfig<T> providerConfig); <T> void removeService(ProviderConfig<T> providerConfig); boolean needCancelRequest(InvocationRequest request); ThreadPool getRequestProcessThreadPool(); }