/** * Dianping.com Inc. * Copyright (c) 2003-2013 All Rights Reserved. */ package com.dianping.pigeon.remoting.invoker; import com.dianping.pigeon.remoting.common.channel.Channel; import com.dianping.pigeon.remoting.common.domain.InvocationRequest; import com.dianping.pigeon.remoting.common.domain.InvocationResponse; import com.dianping.pigeon.remoting.common.exception.NetworkException; import com.dianping.pigeon.remoting.invoker.domain.ConnectInfo; import com.dianping.pigeon.remoting.invoker.route.region.Region; import java.util.List; public interface Client<C extends Channel> { ConnectInfo getConnectInfo(); void open(); void close(); InvocationResponse write(InvocationRequest request) throws NetworkException; void processResponse(InvocationResponse response); void setActive(boolean active); boolean isActive(); boolean isClosed(); List<C> getChannels(); String getHost(); String getAddress(); int getPort(); String getProtocol(); Region getRegion(); void clearRegion(); }