private MsgD WriteImmediateQueryResult(AbstractQueryResult queryResult, ObjectExchangeConfiguration config) { IIntIterator4 idIterator = queryResult.IterateIDs(); MsgD message = BuildQueryResultMessage(0, idIterator, queryResult.Size(), config); return(message); }
private void AssertIterator(int[] expected, IIntIterator4 iterator) { for (var i = 0; i < expected.Length; ++i) { Assert.IsTrue(iterator.MoveNext()); Assert.AreEqual(expected[i], iterator.CurrentInt()); Assert.AreEqual(expected[i], iterator.Current); } Assert.IsFalse(iterator.MoveNext()); }
private ByteArrayBuffer MarshallObjects(int prefetchDepth, int prefetchCount, IIntIterator4 ids) { lock (ContainerLock()) { IObjectExchangeStrategy strategy = ObjectExchangeStrategyFactory.ForConfig(new ObjectExchangeConfiguration (prefetchDepth, prefetchCount)); return strategy.Marshall((LocalTransaction)Transaction(), ids, prefetchCount); } }
private void AssertIterator(int[] expected, IIntIterator4 iterator) { for (int i = 0; i < expected.Length; ++i) { Assert.IsTrue(iterator.MoveNext()); Assert.AreEqual(expected[i], iterator.CurrentInt()); Assert.AreEqual(expected[i], iterator.Current); } Assert.IsFalse(iterator.MoveNext()); }
public virtual ByteArrayBuffer Write(IIntIterator4 idIterator, int maxCount) { IList rootIds = ReadSlots(idIterator, maxCount); IList slots = SlotsFor(rootIds); int marshalledSize = MarshalledSizeFor(slots) + Const4.IntLength + rootIds.Count * Const4.IntLength; ByteArrayBuffer buffer = new ByteArrayBuffer(marshalledSize); WriteIdSlotPairsTo(slots, buffer); WriteIds(buffer, rootIds); return buffer; }
public virtual Db4objects.Db4o.Internal.Query.Result.AbstractQueryResult ToIdList () { IdListQueryResult res = new IdListQueryResult(Transaction(), KnownSize()); IIntIterator4 i = IterateIDs(); while (i.MoveNext()) { res.Add(i.CurrentInt()); } return(res); }
private MsgD BuildQueryResultMessage(int queryResultId, IIntIterator4 ids, int maxCount , ObjectExchangeConfiguration config) { var payload = ObjectExchangeStrategyFactory.ForConfig(config).Marshall ((LocalTransaction) Transaction(), ids, maxCount); var message = QueryResult.GetWriterForLength(Transaction(), Const4.IntLength + payload .Length()); var writer = message.PayLoad(); writer.WriteInt(queryResultId); writer.WriteBytes(payload._buffer); return message; }
public virtual ByteArrayBuffer Write(IIntIterator4 idIterator, int maxCount) { var rootIds = ReadSlots(idIterator, maxCount); var slots = SlotsFor(rootIds); var marshalledSize = MarshalledSizeFor(slots) + Const4.IntLength + rootIds.Count * Const4.IntLength; var buffer = new ByteArrayBuffer(marshalledSize); WriteIdSlotPairsTo(slots, buffer); WriteIds(buffer, rootIds); return(buffer); }
private void AssertIDs(IQueryResult queryResult, int[] expectedIDs, bool ignoreUnexpected ) { ExpectingVisitor expectingVisitor = new ExpectingVisitor(IntArrays4.ToObjectArray (expectedIDs), false, ignoreUnexpected); IIntIterator4 i = queryResult.IterateIDs(); while (i.MoveNext()) { expectingVisitor.Visit(i.CurrentInt()); } expectingVisitor.AssertExpectations(); }
private MsgD BuildQueryResultMessage(int queryResultId, IIntIterator4 ids, int maxCount , ObjectExchangeConfiguration config) { ByteArrayBuffer payload = ObjectExchangeStrategyFactory.ForConfig(config).Marshall ((LocalTransaction)Transaction(), ids, maxCount); MsgD message = QueryResult.GetWriterForLength(Transaction(), Const4.IntLength + payload .Length()); StatefulBuffer writer = message.PayLoad(); writer.WriteInt(queryResultId); writer.WriteBytes(payload._buffer); return(message); }
public virtual long[] GetIDs() { lock (Lock()) { long[] ids = new long[Size()]; int i = 0; IIntIterator4 iterator = _delegate.IterateIDs(); while (iterator.MoveNext()) { ids[i++] = iterator.CurrentInt(); } return(ids); } }
public virtual int PrefetchObjects(ClientObjectContainer container, Transaction trans , IIntIterator4 ids, object[] prefetched, int prefetchCount) { int count = 0; IList idsToGet = new ArrayList(); while (count < prefetchCount) { if (!ids.MoveNext()) { break; } int id = ids.CurrentInt(); if (id > 0) { object obj = trans.ObjectForIdFromCache(id); if (obj != null) { prefetched[count] = obj; } else { idsToGet.Add(Pair.Of(id, count)); } count++; } } if (idsToGet.Count > 0) { ByteArrayBuffer[] buffers = container.ReadObjectSlots(trans, IdArrayFor(idsToGet) ); for (int i = 0; i < buffers.Length; i++) { Pair pair = ((Pair)idsToGet[i]); int id = (((int)pair.first)); int position = (((int)pair.second)); object obj = trans.ObjectForIdFromCache(id); if (obj != null) { prefetched[position] = obj; } else { prefetched[position] = new ObjectReference(id).ReadPrefetch(trans, buffers[i], Const4 .AddToIdTree); } } } return(count); }
private MsgD WriteLazyQueryResult(AbstractQueryResult queryResult, ObjectExchangeConfiguration config) { int queryResultId = GenerateID(); int maxCount = Config().PrefetchObjectCount(); IIntIterator4 idIterator = queryResult.IterateIDs(); MsgD message = BuildQueryResultMessage(queryResultId, idIterator, maxCount, config ); IServerMessageDispatcher serverThread = ServerMessageDispatcher(); serverThread.MapQueryResultToID(new LazyClientObjectSetStub(queryResult, idIterator ), queryResultId); return(message); }
public virtual int PrefetchObjects(ClientObjectContainer container, Transaction trans , IIntIterator4 ids, object[] prefetched, int prefetchCount) { int count = 0; IList idsToGet = new ArrayList(); while (count < prefetchCount) { if (!ids.MoveNext()) { break; } int id = ids.CurrentInt(); if (id > 0) { object obj = trans.ObjectForIdFromCache(id); if (obj != null) { prefetched[count] = obj; } else { idsToGet.Add(Pair.Of(id, count)); } count++; } } if (idsToGet.Count > 0) { ByteArrayBuffer[] buffers = container.ReadObjectSlots(trans, IdArrayFor(idsToGet) ); for (int i = 0; i < buffers.Length; i++) { Pair pair = ((Pair)idsToGet[i]); int id = (((int)pair.first)); int position = (((int)pair.second)); object obj = trans.ObjectForIdFromCache(id); if (obj != null) { prefetched[position] = obj; } else { prefetched[position] = new ObjectReference(id).ReadPrefetch(trans, buffers[i], Const4 .AddToIdTree); } } } return count; }
public static Tree AddAll(Tree tree, IIntIterator4 iter) { if (!iter.MoveNext()) { return tree; } var firstAdded = new TreeInt (iter.CurrentInt()); tree = Add(tree, firstAdded); while (iter.MoveNext()) { tree = tree.Add(new TreeInt(iter.CurrentInt())); } return tree; }
public static Tree AddAll(Tree tree, IIntIterator4 iter) { if (!iter.MoveNext()) { return(tree); } Db4objects.Db4o.Internal.TreeInt firstAdded = new Db4objects.Db4o.Internal.TreeInt (iter.CurrentInt()); tree = Tree.Add(tree, firstAdded); while (iter.MoveNext()) { tree = tree.Add(new Db4objects.Db4o.Internal.TreeInt(iter.CurrentInt())); } return(tree); }
private IList ReadSlots(IIntIterator4 idIterator, int maxCount) { var slots = new ArrayList(); while (idIterator.MoveNext()) { var id = idIterator.CurrentInt(); slots.Add(id); if (slots.Count >= maxCount) { break; } } return(slots); }
public static Tree AddAll(Tree tree, IIntIterator4 iter) { if (!iter.MoveNext()) { return tree; } Db4objects.Db4o.Internal.TreeInt firstAdded = new Db4objects.Db4o.Internal.TreeInt (iter.CurrentInt()); tree = Tree.Add(tree, firstAdded); while (iter.MoveNext()) { tree = tree.Add(new Db4objects.Db4o.Internal.TreeInt(iter.CurrentInt())); } return tree; }
public static Tree AddAll(Tree tree, IIntIterator4 iter) { if (!iter.MoveNext()) { return(tree); } var firstAdded = new TreeInt (iter.CurrentInt()); tree = Add(tree, firstAdded); while (iter.MoveNext()) { tree = tree.Add(new TreeInt(iter.CurrentInt())); } return(tree); }
public virtual Msg ReplyFromServer() { int queryResultID = ReadInt(); int fetchSize = ReadInt(); int fetchDepth = ReadInt(); MsgD message = null; lock (ContainerLock()) { IIntIterator4 idIterator = Stub(queryResultID).IdIterator(); ByteArrayBuffer payload = ObjectExchangeStrategyFactory.ForConfig(new ObjectExchangeConfiguration (fetchDepth, fetchSize)).Marshall((LocalTransaction)Transaction(), idIterator, fetchSize ); message = IdList.GetWriterForBuffer(Transaction(), payload); } return(message); }
public virtual ByteArrayBuffer Marshall(LocalTransaction transaction, IIntIterator4 ids, int count) { ByteArrayBuffer buffer = new ByteArrayBuffer(Const4.IntLength + count * Const4.IntLength ); int sizeOffset = buffer.Offset(); buffer.WriteInt(0); int written = 0; while (count > 0 && ids.MoveNext()) { buffer.WriteInt(ids.CurrentInt()); ++written; --count; } buffer.Seek(sizeOffset); buffer.WriteInt(written); return buffer; }
public virtual ByteArrayBuffer Marshall(LocalTransaction transaction, IIntIterator4 ids, int count) { ByteArrayBuffer buffer = new ByteArrayBuffer(Const4.IntLength + count * Const4.IntLength ); int sizeOffset = buffer.Offset(); buffer.WriteInt(0); int written = 0; while (count > 0 && ids.MoveNext()) { buffer.WriteInt(ids.CurrentInt()); ++written; --count; } buffer.Seek(sizeOffset); buffer.WriteInt(written); return(buffer); }
public override IObjectSet Select() { if (_limit == -1) { return(_query.Execute()); } IQueryResult queryResult = _query.GetQueryResult(); IdListQueryResult limitedResult = new IdListQueryResult(_query.Transaction(), _limit ); int counter = 0; IIntIterator4 i = queryResult.IterateIDs(); while (i.MoveNext()) { if (counter++ >= _limit) { break; } limitedResult.Add(i.CurrentInt()); } return(new ObjectSetFacade(limitedResult)); }
public IdTreeQueryResult(Transaction transaction, IIntIterator4 ids) : base(transaction ) { _ids = TreeInt.AddAll(null, ids); }
public LazyClientObjectSetStub(AbstractQueryResult queryResult, IIntIterator4 idIterator ) { _queryResult = queryResult; _idIterator = idIterator; }
public virtual void Reset() { _idIterator = _queryResult.IterateIDs(); }
public virtual ByteArrayBuffer Marshall(LocalTransaction transaction, IIntIterator4 ids, int maxCount) { return new EagerObjectWriter(_config, transaction).Write(ids, maxCount); }
public virtual ByteArrayBuffer Marshall(LocalTransaction transaction, IIntIterator4 ids, int maxCount) { return(new EagerObjectWriter(_config, transaction).Write(ids, maxCount)); }
internal ClientQueryResultIterator(AbstractQueryResult client) { _client = client; _ids = client.IterateIDs(); }
private IList ReadSlots(IIntIterator4 idIterator, int maxCount) { ArrayList slots = new ArrayList(); while (idIterator.MoveNext()) { int id = idIterator.CurrentInt(); slots.Add(id); if (slots.Count >= maxCount) { break; } } return slots; }
private ByteArrayBuffer MarshallObjects(int prefetchDepth, int prefetchCount, IIntIterator4 ids) { lock (ContainerLock()) { IObjectExchangeStrategy strategy = ObjectExchangeStrategyFactory.ForConfig(new ObjectExchangeConfiguration (prefetchDepth, prefetchCount)); return(strategy.Marshall((LocalTransaction)Transaction(), ids, prefetchCount)); } }