ProxyFlushBatch.java
// Copyright (c) ZeroC, Inc.
package com.zeroc.Ice;
class ProxyFlushBatch extends ProxyOutgoingAsyncBase<Void> {
public ProxyFlushBatch(_ObjectPrxI prx) {
super(prx, "ice_flushBatchRequests");
_observer = ObserverHelper.get(prx, "ice_flushBatchRequests");
BatchRequestQueue.SwapResult r = prx._getReference().getBatchRequestQueue().swap(_os);
_batchRequestNum = r != null ? r.batchRequestNum : 0;
}
@Override
public boolean completed(InputStream is) {
assert false;
return false;
}
@Override
protected void markCompleted() {
complete(null);
}
@Override
public int invokeRemote(ConnectionI connection, boolean compress, boolean response)
throws RetryException {
if (_batchRequestNum == 0) {
return sent() ? AsyncStatus.Sent | AsyncStatus.InvokeSentCallback : AsyncStatus.Sent;
}
_cachedConnection = connection;
return connection.sendAsyncRequest(this, compress, false, _batchRequestNum);
}
@Override
public int invokeCollocated(CollocatedRequestHandler handler) {
if (_batchRequestNum == 0) {
return sent() ? AsyncStatus.Sent | AsyncStatus.InvokeSentCallback : AsyncStatus.Sent;
}
return handler.invokeAsyncRequest(this, _batchRequestNum, false);
}
public void invoke() {
Protocol.checkSupportedProtocol(
Protocol.getCompatibleProtocol(_proxy._getReference().getProtocol()));
try {
invokeImpl(true); // userThread = true
} catch (LocalException ex) {
abort(ex);
}
}
protected int _batchRequestNum;
}