Пример #1
0
        /** <inheritdoc /> */
        public IGridClientData Data(String cacheName)
        {
            lock (dataMap) {
                GridClientDataImpl data;

                if (!dataMap.TryGetValue(cacheName, out data))
                {
                    IGridClientDataConfiguration dataCfg = cfg.DataConfiguration(cacheName);

                    if (dataCfg == null && cacheName != null)
                    {
                        throw new GridClientException("Data configuration for given cache name was not provided: " +
                                                      cacheName);
                    }

                    IGridClientLoadBalancer balancer = dataCfg != null ? dataCfg.PinnedBalancer :
                                                       new GridClientRandomBalancer();

                    Predicate <IGridClientNode> filter = delegate(IGridClientNode e) {
                        return(e.Caches.ContainsKey(cacheName));
                    };

                    data = new GridClientDataImpl(cacheName, this, null, filter, balancer);

                    dataMap.Add(cacheName, data);
                }

                return(data);
            }
        }