Пример #1
0
		private void FetchMissingSlotBuffers(Transaction transaction, ArrayList missing, 
			IDictionary buffers, int prefetchDepth)
		{
			if (missing.Count == 0)
			{
				return;
			}
			int safePrefetchDepth = Math.Max(1, prefetchDepth);
			SendReadMultipleObjectsMessage(Msg.ReadMultipleObjects, transaction, safePrefetchDepth
				, missing);
			MsgD response = (MsgD)ExpectedResponse(Msg.ReadMultipleObjects);
			IEnumerator slots = new CacheContributingObjectReader((ClientTransaction)transaction
				, _clientSlotCache, response.PayLoad()).Buffers();
			while (slots.MoveNext())
			{
				Pair pair = ((Pair)slots.Current);
				buffers[((int)pair.first)] = ((ByteArrayBuffer)pair.second);
			}
		}