org.kurento.tutorial.one2onecalladv.UserRegistry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kurento-one2one-call-advanced Show documentation
Show all versions of kurento-one2one-call-advanced Show documentation
WebRTC one to one video call with recording and filtering
/*
* (C) Copyright 2014 Kurento (http://kurento.org/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.kurento.tutorial.one2onecalladv;
import java.util.concurrent.ConcurrentHashMap;
import org.springframework.web.socket.WebSocketSession;
/**
* Map of users registered in the system. This class has a concurrent hash map to store users, using
* its name as key in the map.
*
* @author Boni Garcia ([email protected])
* @author Micael Gallego ([email protected])
* @since 5.0.0
*/
public class UserRegistry {
private ConcurrentHashMap usersByName = new ConcurrentHashMap<>();
private ConcurrentHashMap usersBySessionId = new ConcurrentHashMap<>();
public void register(UserSession user) {
usersByName.put(user.getName(), user);
usersBySessionId.put(user.getSession().getId(), user);
}
public UserSession getByName(String name) {
return usersByName.get(name);
}
public UserSession getBySession(WebSocketSession session) {
return usersBySessionId.get(session.getId());
}
public boolean exists(String name) {
return usersByName.keySet().contains(name);
}
public UserSession removeBySession(WebSocketSession session) {
final UserSession user = getBySession(session);
if (user != null) {
usersByName.remove(user.getName());
usersBySessionId.remove(session.getId());
}
return user;
}
}