Exemple #1
0
        private MsgD WriteImmediateQueryResult(AbstractQueryResult queryResult, ObjectExchangeConfiguration
                                               config)
        {
            IIntIterator4 idIterator = queryResult.IterateIDs();
            MsgD          message    = BuildQueryResultMessage(0, idIterator, queryResult.Size(), config);

            return(message);
        }
Exemple #2
0
 protected MsgD WriteQueryResult(AbstractQueryResult queryResult, QueryEvaluationMode
                                 evaluationMode, ObjectExchangeConfiguration config)
 {
     if (evaluationMode == QueryEvaluationMode.Immediate)
     {
         return(WriteImmediateQueryResult(queryResult, config));
     }
     return(WriteLazyQueryResult(queryResult, config));
 }
Exemple #3
0
 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;
 }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }