private MsgD WriteImmediateQueryResult(AbstractQueryResult queryResult, ObjectExchangeConfiguration config) { IIntIterator4 idIterator = queryResult.IterateIDs(); MsgD message = BuildQueryResultMessage(0, idIterator, queryResult.Size(), config); return(message); }
protected MsgD WriteQueryResult(AbstractQueryResult queryResult, QueryEvaluationMode evaluationMode, ObjectExchangeConfiguration config) { if (evaluationMode == QueryEvaluationMode.Immediate) { return(WriteImmediateQueryResult(queryResult, config)); } return(WriteLazyQueryResult(queryResult, config)); }
public static IObjectExchangeStrategy ForConfig(ObjectExchangeConfiguration config ) { if (config.prefetchDepth > 0) { return(new EagerObjectExchangeStrategy(config)); } return(DeferredObjectExchangeStrategy.Instance); }
public static IObjectExchangeStrategy ForConfig(ObjectExchangeConfiguration config ) { if (config.prefetchDepth > 0) { return new EagerObjectExchangeStrategy(config); } return DeferredObjectExchangeStrategy.Instance; }
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); }
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); }