本文整理汇总了Java中com.alibaba.dubbo.remoting.exchange.ResponseCallback类的典型用法代码示例。如果您正苦于以下问题:Java ResponseCallback类的具体用法?Java ResponseCallback怎么用?Java ResponseCallback使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ResponseCallback类属于com.alibaba.dubbo.remoting.exchange包,在下文中一共展示了ResponseCallback类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setCallback
import com.alibaba.dubbo.remoting.exchange.ResponseCallback; //导入依赖的package包/类
public void setCallback(ResponseCallback callback) {
if (isDone()) {
invokeCallback(callback);
} else {
boolean isdone = false;
lock.lock();
try{
if (!isDone()) {
this.callback = callback;
} else {
isdone = true;
}
}finally {
lock.unlock();
}
if (isdone){
invokeCallback(callback);
}
}
}
示例2: request
import com.alibaba.dubbo.remoting.exchange.ResponseCallback; //导入依赖的package包/类
public ResponseFuture request(Object msg, int timeout) throws RemotingException {
this.invoked = msg;
return new ResponseFuture() {
public Object get() throws RemotingException {
return received;
}
public Object get(int timeoutInMillis) throws RemotingException {
return received;
}
public boolean isDone() {
return true;
}
public void setCallback(ResponseCallback callback) {
}
};
}
示例3: request
import com.alibaba.dubbo.remoting.exchange.ResponseCallback; //导入依赖的package包/类
public ResponseFuture request(Object msg, int timeout) throws RemotingException {
this.invoked = msg;
return new ResponseFuture() {
public Object get() throws RemotingException {
return received;
}
public Object get(int timeoutInMillis) throws RemotingException {
return received;
}
public boolean isDone() {
return true;
}
public void setCallback(ResponseCallback callback) {
}
};
}
示例4: setCallback
import com.alibaba.dubbo.remoting.exchange.ResponseCallback; //导入依赖的package包/类
public void setCallback(ResponseCallback callback) {
if (isDone()) {
invokeCallback(callback);
} else {
boolean isdone = false;
lock.lock();
try {
if (!isDone()) {
this.callback = callback;
} else {
isdone = true;
}
} finally {
lock.unlock();
}
if (isdone) {
invokeCallback(callback);
}
}
}
示例5: asyncCallback
import com.alibaba.dubbo.remoting.exchange.ResponseCallback; //导入依赖的package包/类
private void asyncCallback(final Invoker<?> invoker, final Invocation invocation) {
Future<?> f = RpcContext.getContext().getFuture();
if (f instanceof FutureAdapter) {
ResponseFuture future = ((FutureAdapter<?>)f).getFuture();
future.setCallback(new ResponseCallback() {
public void done(Object rpcResult) {
if (rpcResult == null){
logger.error(new IllegalStateException("invalid result value : null, expected "+Result.class.getName()));
return;
}
///must be rpcResult
if (! (rpcResult instanceof Result)){
logger.error(new IllegalStateException("invalid result type :" + rpcResult.getClass() + ", expected "+Result.class.getName()));
return;
}
Result result = (Result) rpcResult;
if (result.hasException()) {
fireThrowCallback(invoker, invocation, result.getException());
} else {
fireReturnCallback(invoker, invocation, result.getValue());
}
}
public void caught(Throwable exception) {
fireThrowCallback(invoker, invocation, exception);
}
});
}
}