All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.persistence.leveldb.configuration.LevelDBStoreConfiguration Maven / Gradle / Ivy

There is a newer version: 9.1.7.Final
Show newest version
package org.infinispan.persistence.leveldb.configuration;

import org.infinispan.commons.configuration.BuiltBy;
import org.infinispan.commons.configuration.ConfigurationFor;
import org.infinispan.commons.configuration.attributes.Attribute;
import org.infinispan.commons.configuration.attributes.AttributeDefinition;
import org.infinispan.commons.configuration.attributes.AttributeSet;
import org.infinispan.configuration.cache.AbstractStoreConfiguration;
import org.infinispan.configuration.cache.AsyncStoreConfiguration;
import org.infinispan.configuration.cache.SingletonStoreConfiguration;
import org.infinispan.persistence.leveldb.LevelDBStore;

/**
 *
 * @author Ray Tsang
 *
 */
@ConfigurationFor(LevelDBStore.class)
@BuiltBy(LevelDBStoreConfigurationBuilder.class)
public class LevelDBStoreConfiguration extends AbstractStoreConfiguration {
   public enum ImplementationType {
      AUTO, JAVA, JNI
   }

   final static AttributeDefinition LOCATION = AttributeDefinition.builder("location", "Infinispan-LevelDBStore/data").immutable().build();
   final static AttributeDefinition EXPIRED_LOCATION = AttributeDefinition.builder("expiredLocation", "Infinispan-LevelDBStore/expired").immutable().build();
   final static AttributeDefinition IMPLEMENTATION_TYPE = AttributeDefinition.builder("implementationType", ImplementationType.AUTO).immutable().build();
   final static AttributeDefinition COMPRESSION_TYPE = AttributeDefinition.builder("compressionType", CompressionType.NONE).immutable().build();
   final static AttributeDefinition BLOCK_SIZE = AttributeDefinition.builder("blockSize", 0).immutable().build();
   final static AttributeDefinition CACHE_SIZE = AttributeDefinition.builder("cacheSize", 0l).immutable().build();
   final static AttributeDefinition EXPIRY_QUEUE_SIZE = AttributeDefinition.builder("expiryQueueSize", 10000).immutable().build();
   final static AttributeDefinition CLEAR_THRESHOLD = AttributeDefinition.builder("clearThreshold", 10000).immutable().build();

   public static AttributeSet attributeDefinitionSet() {
      return new AttributeSet(LevelDBStoreConfiguration.class, AbstractStoreConfiguration.attributeDefinitionSet(), LOCATION, EXPIRED_LOCATION, IMPLEMENTATION_TYPE, COMPRESSION_TYPE,
            BLOCK_SIZE, CACHE_SIZE, EXPIRY_QUEUE_SIZE, CLEAR_THRESHOLD);
   }

   private final Attribute location;
   private final Attribute expiredLocation;
   private final Attribute implementationType;
   private final Attribute compressionType;
   private final Attribute blockSize;
   private final Attribute cacheSize;
   private final Attribute expiryQueueSize;
   private final Attribute clearThreshold;

   public LevelDBStoreConfiguration(AttributeSet attributes, AsyncStoreConfiguration async, SingletonStoreConfiguration singletonStore) {
      super(attributes, async, singletonStore);
      location = attributes.attribute(LOCATION);
      expiredLocation = attributes.attribute(EXPIRED_LOCATION);
      implementationType = attributes.attribute(IMPLEMENTATION_TYPE);
      compressionType = attributes.attribute(COMPRESSION_TYPE);
      blockSize = attributes.attribute(BLOCK_SIZE);
      cacheSize = attributes.attribute(CACHE_SIZE);
      expiryQueueSize = attributes.attribute(EXPIRY_QUEUE_SIZE);
      clearThreshold = attributes.attribute(CLEAR_THRESHOLD);
   }

   public String location() {
      return location.get();
   }

   public String expiredLocation() {
      return expiredLocation.get();
   }

   public ImplementationType implementationType() {
      return implementationType.get();
   }

   public CompressionType compressionType() {
      return compressionType.get();
   }

   public Integer blockSize() {
      return blockSize.get();
   }

   public Long cacheSize() {
      return cacheSize.get();
   }

   public int expiryQueueSize() {
      return expiryQueueSize.get();
   }

   public int clearThreshold() {
      return clearThreshold.get();
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy