Search in sources :

Example 1 with GridClientLoadBalancer

use of org.apache.ignite.internal.client.balancer.GridClientLoadBalancer in project ignite by apache.

the class GridClientImpl method data.

/** {@inheritDoc} */
@Override
public GridClientData data(@Nullable final String cacheName) throws GridClientException {
    checkClosed();
    Object key = maskNull(cacheName);
    GridClientDataImpl data = dataMap.get(key);
    if (data == null) {
        GridClientDataConfiguration dataCfg = cfg.getDataConfiguration(cacheName);
        if (dataCfg == null && cacheName != null)
            throw new GridClientException("Data configuration for given cache name was not provided: " + cacheName);
        GridClientLoadBalancer balancer = dataCfg != null ? dataCfg.getPinnedBalancer() : new GridClientRandomBalancer();
        GridClientPredicate<GridClientNode> cacheNodes = new GridClientPredicate<GridClientNode>() {

            @Override
            public boolean apply(GridClientNode e) {
                return e.caches().containsKey(cacheName);
            }

            @Override
            public String toString() {
                return "GridClientHasCacheFilter [cacheName=" + cacheName + "]";
            }
        };
        data = new GridClientDataImpl(cacheName, this, null, cacheNodes, balancer, null, cfg.isEnableMetricsCache());
        GridClientDataImpl old = dataMap.putIfAbsent(key, data);
        if (old != null)
            data = old;
    }
    return data;
}
Also used : GridClientException(org.apache.ignite.internal.client.GridClientException) GridClientNode(org.apache.ignite.internal.client.GridClientNode) GridClientPredicate(org.apache.ignite.internal.client.GridClientPredicate) GridClientLoadBalancer(org.apache.ignite.internal.client.balancer.GridClientLoadBalancer) GridClientDataConfiguration(org.apache.ignite.internal.client.GridClientDataConfiguration) GridClientRandomBalancer(org.apache.ignite.internal.client.balancer.GridClientRandomBalancer)

Aggregations

GridClientDataConfiguration (org.apache.ignite.internal.client.GridClientDataConfiguration)1 GridClientException (org.apache.ignite.internal.client.GridClientException)1 GridClientNode (org.apache.ignite.internal.client.GridClientNode)1 GridClientPredicate (org.apache.ignite.internal.client.GridClientPredicate)1 GridClientLoadBalancer (org.apache.ignite.internal.client.balancer.GridClientLoadBalancer)1 GridClientRandomBalancer (org.apache.ignite.internal.client.balancer.GridClientRandomBalancer)1