com.zeroc.IceInternal.ProxyFlushBatch Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ice Show documentation
Show all versions of ice Show documentation
Ice is a comprehensive RPC framework that helps you build distributed applications with minimal effort using familiar object-oriented idioms
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//
package com.zeroc.IceInternal;
public class ProxyFlushBatch extends ProxyOutgoingAsyncBaseI
{
public ProxyFlushBatch(com.zeroc.Ice._ObjectPrxI prx)
{
super(prx, "ice_flushBatchRequests");
_observer = ObserverHelper.get(prx, "ice_flushBatchRequests");
BatchRequestQueue.SwapResult r = prx._getBatchRequestQueue().swap(_os);
_batchRequestNum = r != null ? r.batchRequestNum : 0;
}
@Override
public boolean completed(com.zeroc.Ice.InputStream is)
{
assert(false);
return false;
}
@Override
protected void markCompleted()
{
complete(null);
}
@Override
public int invokeRemote(com.zeroc.Ice.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()));
invokeImpl(true); // userThread = true
}
protected int _batchRequestNum;
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy