/** * Dianping.com Inc. * Copyright (c) 2003-2013 All Rights Reserved. */ package com.dianping.pigeon.remoting.provider; import java.util.List; 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.remoting.provider.process.RequestProcessor; public interface Server { public boolean isStarted(); public boolean support(ServerConfig serverConfig); public void start(ServerConfig serverConfig); public void stop(); public ServerConfig getServerConfig(); public int getPort(); public String getRegistryUrl(String url); public Future<InvocationResponse> processRequest(final InvocationRequest request, final ProviderContext providerContext); public <T> void addService(ProviderConfig<T> providerConfig); public <T> void removeService(ProviderConfig<T> providerConfig); public List<String> getInvokerMetaInfo(); public String getProtocol(); public RequestProcessor getRequestProcessor(); }