package org.mobicents.ipbx.session.call.model; import java.util.HashMap; import java.util.concurrent.atomic.AtomicInteger; public class ConferenceManager { private static ConferenceManager conferenceManager; public static ConferenceManager instance() { if(conferenceManager == null) { conferenceManager = new ConferenceManager(); } return conferenceManager; } private AtomicInteger confId = new AtomicInteger(0); private HashMap<String, Conference> conferences = new HashMap<String, Conference>(); synchronized public void addConference(String name, Conference conf) { conferences.put(name, conf); } synchronized public Conference getConference(String name) { return conferences.get(name); } synchronized public Conference getNewConference() { String confIdString = confId.toString(); confId.incrementAndGet(); if(conferences.get(confIdString) == null) { Conference conf = new Conference(); conf.setId(confIdString); conferences.put(confIdString, conf); } return conferences.get(confIdString); } synchronized public void removeConference(String name) { conferences.remove(name); } }