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

mt.edu.um.cs.rv.monitors.GlobalUserLogoutCounterMonitor Maven / Gradle / Ivy

package mt.edu.um.cs.rv.monitors;

import mt.edu.um.cs.rv.events.Event;
import mt.edu.um.cs.rv.events.LogoutEvent;
import mt.edu.um.cs.rv.monitors.results.MonitorResult;
import mt.edu.um.cs.rv.monitors.state.State;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.messaging.MessagingException;

import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;

/**
 * Created by dwardu on 18/01/2016.
 */
public class GlobalUserLogoutCounterMonitor implements Monitor {

    private static Logger LOGGER = LoggerFactory.getLogger(GlobalUserLogoutCounterMonitor.class);

    private Set> requiredEvents;
    private AtomicLong logoutCount = new AtomicLong();

    public GlobalUserLogoutCounterMonitor() {
        requiredEvents = new HashSet();
        requiredEvents.add(LogoutEvent.class);
    }

    @Override
    public String getName() {
        return "GlobalUserLogoutCounterMonitor";
    }

    @Override
    public Set> requiredEvents() {
        return this.requiredEvents;
    }

    @Override
    public MonitorResult handleEvent(Event event, State s) throws MessagingException {
        long l = logoutCount.incrementAndGet();
        LOGGER.info("Processing {}. Total logouts observed: {}", event.getClass().getName(), l);
        return MonitorResult.ok();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy