package com.rayo.server.jmx;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.jmx.export.annotation.ManagedResource;
import com.rayo.server.CallRegistry;
import com.rayo.server.CdrManager;
import com.rayo.server.MixerActor;
import com.rayo.server.MixerRegistry;
@ManagedResource(objectName="com.rayo:Type=Mixers", description="Active Mixers")
public class Mixers implements Serializable, MixersMXBean {
private static final long serialVersionUID = 1L;
private MixerRegistry mixerRegistry;
private CallRegistry callRegistry;
private CdrManager cdrManager;
@ManagedAttribute(description="Active Mixers")
public List<Mixer> getActiveMixers() {
Collection<MixerActor> actors = mixerRegistry.getActiveMixers();
List<Mixer> mixers = new ArrayList<Mixer>();
for (MixerActor actor: actors) {
mixers.add(new Mixer(actor.getMixer(), callRegistry, cdrManager));
}
return mixers;
}
public void setMixerRegistry(MixerRegistry mixerRegistry) {
this.mixerRegistry = mixerRegistry;
}
public void setCallRegistry(CallRegistry callRegistry) {
this.callRegistry = callRegistry;
}
public void setCdrManager(CdrManager cdrManager) {
this.cdrManager = cdrManager;
}
}