/**
* Copyright 2008 - CommonCrawl Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
**/
package org.commoncrawl.rpc.base.internal;
import org.commoncrawl.rpc.base.shared.RPCException;
import org.commoncrawl.rpc.base.shared.RPCStruct;
/**
*
* @author rana
*
* @param <InputType>
* @param <OutputType>
*/
public class AsyncContext<InputType extends RPCStruct, OutputType extends RPCStruct> {
AsyncClientChannel _clientChannel;
AsyncServerChannel _serverChannel;
int _requestId;
InputType _input;
OutputType _output;
AsyncRequest.Status _status = AsyncRequest.Status.Success;
String _errorDescription;
boolean _isComplete = false;
public AsyncContext(AsyncServerChannel serverChannel, AsyncClientChannel clientChannel, int requestId,
InputType input, OutputType output) {
_clientChannel = clientChannel;
_serverChannel = serverChannel;
_requestId = requestId;
_input = input;
_output = output;
}
public void completeRequest() throws RPCException {
_serverChannel.sendResponse(this);
}
public AsyncClientChannel getClientChannel() {
return _clientChannel;
}
public String getErrorDesc() {
return _errorDescription;
}
public InputType getInput() {
return _input;
}
public OutputType getOutput() {
return _output;
}
public int getRequestId() {
return _requestId;
}
public AsyncServerChannel getServerChannel() {
return _serverChannel;
}
public AsyncRequest.Status getStatus() {
return _status;
}
boolean isComplete() {
return _isComplete;
}
public void setErrorDesc(String errorDesc) {
_errorDescription = errorDesc;
}
public void setOutput(OutputType output) {
_output = output;
}
public void setStatus(AsyncRequest.Status status) {
_status = status;
}
}