本文整理汇总了C#中IceInternal.BasicStream.swap方法的典型用法代码示例。如果您正苦于以下问题:C# BasicStream.swap方法的具体用法?C# BasicStream.swap怎么用?C# BasicStream.swap使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IceInternal.BasicStream
的用法示例。
在下文中一共展示了BasicStream.swap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: finishBatchRequest
public void finishBatchRequest(BasicStream os)
{
try
{
lock(this)
{
_batchStream.swap(os);
if(_batchAutoFlushSize > 0 && (_batchStream.size() > _batchAutoFlushSize))
{
//
// Temporarily save the last request.
//
byte[] lastRequest = new byte[_batchStream.size() - _batchMarker];
Buffer buffer = _batchStream.getBuffer();
buffer.b.position(_batchMarker);
buffer.b.get(lastRequest);
_batchStream.resize(_batchMarker, false);
int invokeNum = _batchRequestNum;
BasicStream stream = new BasicStream(_reference.getInstance(),
Ice.Util.currentProtocolEncoding);
stream.swap(_batchStream);
_adapter.getThreadPool().dispatch(() =>
{
invokeAll(stream, 0, invokeNum, true);
}, null);
//
// Reset the batch.
//
_batchRequestNum = 0;
_batchMarker = 0;
//
// Start a new batch with the last message that caused us to go over the limit.
//
_batchStream.writeBlob(Protocol.requestBatchHdr);
_batchStream.writeBlob(lastRequest);
}
//
// Increment the number of requests in the batch.
//
Debug.Assert(_batchStreamInUse);
++_batchRequestNum;
_batchStreamInUse = false;
Monitor.PulseAll(this);
}
}
catch(Ice.LocalException ex)
{
abortBatchRequest();
throw ex;
}
}