package com.dianping.pigeon.remoting.common.util; import com.dianping.pigeon.remoting.common.domain.InvocationRequest; import com.dianping.pigeon.remoting.common.domain.InvocationResponse; import com.dianping.pigeon.remoting.invoker.domain.InvokerContext; import com.dianping.pigeon.remoting.invoker.exception.RequestTimeoutException; public interface InvocationBuilder { InvocationRequest newRequest(); InvocationRequest newRequest(InvokerContext invokerContext); InvocationRequest newRequest(String serviceName, String methodName, Object[] parameters, byte serialize, int messageType, int timeout, Class<?>[] parameterClasses); InvocationRequest newRequest(String serviceName, String methodName, Object[] parameters, byte serialize, int messageType, int timeout, int callType, long seq); Class<? extends InvocationRequest> getRequestClass(); InvocationResponse newResponse(); InvocationResponse newResponse(int messageType, byte serialize); InvocationResponse newResponse(byte serialize, long seq, int messageType, Object returnVal); Class<? extends InvocationResponse> getResponseClass(); RequestTimeoutException newTimeoutException(String message); }