Package it.unipd.netmus.server.utils.cache

Source Code of it.unipd.netmus.server.utils.cache.CacheSupport

package it.unipd.netmus.server.utils.cache;

import java.io.Serializable;
import java.util.Collections;

import net.sf.jsr107cache.Cache;
import net.sf.jsr107cache.CacheException;
import net.sf.jsr107cache.CacheFactory;
import net.sf.jsr107cache.CacheManager;
import net.sf.jsr107cache.CacheStatistics;

/**
* Nome: CacheSupport.java
* Autore: VT.G
* Licenza: GNU GPL v3
* Data Creazione: 14 Marzo 2011
*/

/**
* CacheSupport è composta da soli metodi statici che forniscono le principali
* funzioni disponibili sulla Memcache. Questi servizi sono disponibili a tutte
* le componenti del lato server. Rende disponibili all'esterno le funzioni
* basilari di lettura e scrittura sulla memoria cache in modo completamente
* trasparente rispetto all'implmentazione tramite JCache e soprattutto
* all'utilizzo della CacheFactory.
*/

public class CacheSupport {

    /**
     * Ripulisce l'intera Memcache
     */
    public static void cacheClear() {
        Cache cache;
        cache = CacheSupport.cacheInit();

        cache.clear();
    }

    /**
     * carica dalla mappa della Memcache l'oggetto la cui chiave è data in input
     */
    public static Object cacheGet(String id) {
        Cache cache;
        cache = CacheSupport.cacheInit();

        return cache.get(id);
    }

    /**
     * Salva nella Memcache l'oggetto e la relativa chiave dati in input
     */
    public static void cachePut(String id, Serializable o) {
        Cache cache;
        cache = CacheSupport.cacheInit();

        cache.put(id, o);
    }

    /**
     * Rimuove dalla Memcache l'oggetto relativo alla chiave data in input
     */
    public static void cacheRemove(String id) {
        Cache cache;
        cache = CacheSupport.cacheInit();

        cache.remove(id);
    }

    public static void printStatistics(Cache cache) {
        CacheStatistics stats = cache.getCacheStatistics();

        System.out.println("Objects in cache: " + stats.getObjectCount());
        System.out.println("Cache hits: " + stats.getCacheHits());
        System.out.println("Cache misses: " + stats.getCacheMisses());
    }

    /**
     * Restituisce l'istanza della Memcache utilizzata; questo metodo è privato
     * poichè la configurazione della Memcache è interamente gestita in questa
     * classe.
     */
    private static Cache cacheInit() {

        Cache cache;

        try {
            CacheFactory cacheFactory = CacheManager.getInstance()
                    .getCacheFactory();
            cache = cacheFactory.createCache(Collections.emptyMap());
            return cache;
        } catch (CacheException e) {
            return null;
        }

    }
}
TOP

Related Classes of it.unipd.netmus.server.utils.cache.CacheSupport

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.