Package sfs2x.client.entities.managers
Class SFSRoomManager
- java.lang.Object
-
- sfs2x.client.entities.managers.SFSRoomManager
-
- All Implemented Interfaces:
IRoomManager
public class SFSRoomManager extends java.lang.Object implements IRoomManager
The SFSRoomManager class is the entity in charge of managing the client-side Rooms list. It keeps track of all the Rooms available in the client-side Rooms list and of subscriptions to multiple Room Groups. It also provides various utility methods to look for Rooms by name and id, retrieve Rooms belonging to a specific Group, etc.- See Also:
SmartFox.getRoomManager()
-
-
Constructor Summary
Constructors Constructor Description SFSRoomManager(ISmartFox smartFox)Creates a new SFSRoomManager instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddGroup(java.lang.String groupId)* API internal usage only *voidaddRoom(Room room)* API internal usage only *voidaddRoom(Room room, boolean addGroupIfMissing)* API internal usage only *voidchangeRoomCapacity(Room room, int maxUsers, int maxSpect)* API internal usage only *voidchangeRoomName(Room room, java.lang.String newName)* API internal usage only *voidchangeRoomPasswordState(Room room, boolean isPassProtected)* API internal usage only *booleancontainsGroup(java.lang.String groupId)Indicates whether the specified Group has been subscribed by the client or not.booleancontainsRoom(int id)Indicates whether a Room exists in the Rooms list or not.booleancontainsRoom(java.lang.String name)Indicates whether a Room exists in the Rooms list or not.booleancontainsRoomInGroup(int roomId, java.lang.String groupId)Indicates whether the Rooms list contains a Room belonging to the specified Group or not.booleancontainsRoomInGroup(java.lang.String roomName, java.lang.String groupId)Indicates whether the Rooms list contains a Room belonging to the specified Group or not.java.util.List<Room>getJoinedRooms()Returns a list of Rooms currently joined by the client.java.lang.StringgetOwnerZone()* API internal usage only *RoomgetRoomById(int id)Retrieves a Room object from its id.RoomgetRoomByName(java.lang.String name)Retrieves a Room object from its name.intgetRoomCount()Returns the current number of Rooms in the Rooms list.java.util.List<java.lang.String>getRoomGroups()Returns the names of Room Groups currently subscribed by the client.java.util.List<Room>getRoomList()Returns a list of Rooms currently "known" by the client.java.util.List<Room>getRoomListFromGroup(java.lang.String groupId)Retrieves the list of Rooms which are part of the specified Room Group.ISmartFoxgetSmartFox()* API internal usage only *java.util.List<Room>getUserRooms(User user)Retrieves a list of Rooms joined by the specified user.voidremoveGroup(java.lang.String groupId)* API internal usage only *voidremoveRoom(Room room)* API internal usage only *voidremoveRoomById(int id)* API internal usage only *voidremoveRoomByName(java.lang.String name)* API internal usage only *voidremoveUser(User user)* API internal usage only *RoomreplaceRoom(Room room)* API internal usage only *RoomreplaceRoom(Room room, boolean addToGroupIfMissing)* API internal usage only *
-
-
-
Constructor Detail
-
SFSRoomManager
public SFSRoomManager(ISmartFox smartFox)
Creates a new SFSRoomManager instance.NOTE: developers never instantiate a SFSRoomManager manually: this is done by the SmartFoxServer 2X API internally. A reference to the existing instance can be retrieved using the SmartFox.getRoomManager() method.
- Parameters:
smartFox- An instance of the SmartFoxServer 2X client API main SmartFox class.- See Also:
SmartFox.getRoomManager()
-
-
Method Detail
-
getOwnerZone
public java.lang.String getOwnerZone()
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
getOwnerZonein interfaceIRoomManager
-
addRoom
public void addRoom(Room room)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
addRoomin interfaceIRoomManager
-
addRoom
public void addRoom(Room room, boolean addGroupIfMissing)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
addRoomin interfaceIRoomManager
-
addGroup
public void addGroup(java.lang.String groupId)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
addGroupin interfaceIRoomManager
-
replaceRoom
public Room replaceRoom(Room room)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
replaceRoomin interfaceIRoomManager
-
replaceRoom
public Room replaceRoom(Room room, boolean addToGroupIfMissing)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
replaceRoomin interfaceIRoomManager
-
removeGroup
public void removeGroup(java.lang.String groupId)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
removeGroupin interfaceIRoomManager
-
containsGroup
public boolean containsGroup(java.lang.String groupId)
Description copied from interface:IRoomManagerIndicates whether the specified Group has been subscribed by the client or not.- Specified by:
containsGroupin interfaceIRoomManager- Parameters:
groupId- The name of the Group.- Returns:
trueif the client subscribed the passed Group.
-
containsRoom
public boolean containsRoom(int id)
Description copied from interface:IRoomManagerIndicates whether a Room exists in the Rooms list or not.- Specified by:
containsRoomin interfaceIRoomManager- Parameters:
id- The id of the Room object whose presence in the Rooms list is to be tested.- Returns:
trueif the passed Room exists in the Rooms list.- See Also:
Room.getId()
-
containsRoom
public boolean containsRoom(java.lang.String name)
Description copied from interface:IRoomManagerIndicates whether a Room exists in the Rooms list or not.- Specified by:
containsRoomin interfaceIRoomManager- Parameters:
name- The name of the Room object whose presence in the Rooms list is to be tested.- Returns:
trueif the passed Room exists in the Rooms list.- See Also:
Room.getName()
-
containsRoomInGroup
public boolean containsRoomInGroup(int roomId, java.lang.String groupId)Description copied from interface:IRoomManagerIndicates whether the Rooms list contains a Room belonging to the specified Group or not.- Specified by:
containsRoomInGroupin interfaceIRoomManager- Parameters:
roomId- The id of the Room object whose presence in the Rooms list is to be tested.groupId- The name of the Group to which the specified Room must belong.- Returns:
trueif the Rooms list contains the passed Room and it belongs to the specified Group.- See Also:
Room.getId(),Room.getGroupId()
-
containsRoomInGroup
public boolean containsRoomInGroup(java.lang.String roomName, java.lang.String groupId)Description copied from interface:IRoomManagerIndicates whether the Rooms list contains a Room belonging to the specified Group or not.- Specified by:
containsRoomInGroupin interfaceIRoomManager- Parameters:
roomName- The name of the Room object whose presence in the Rooms list is to be tested.groupId- The name of the Group to which the specified Room must belong.- Returns:
trueif the Rooms list contains the passed Room and it belongs to the specified Group.- See Also:
Room.getName(),Room.getGroupId()
-
changeRoomName
public void changeRoomName(Room room, java.lang.String newName)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
changeRoomNamein interfaceIRoomManager
-
changeRoomPasswordState
public void changeRoomPasswordState(Room room, boolean isPassProtected)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
changeRoomPasswordStatein interfaceIRoomManager
-
changeRoomCapacity
public void changeRoomCapacity(Room room, int maxUsers, int maxSpect)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
changeRoomCapacityin interfaceIRoomManager
-
getRoomById
public Room getRoomById(int id)
Description copied from interface:IRoomManagerRetrieves a Room object from its id.- Specified by:
getRoomByIdin interfaceIRoomManager- Parameters:
id- The id of the Room.- Returns:
- An object representing the requested Room;
nullif no Room object with the passed id exists in the Rooms list. Example
The following example retrieves a Room object and traces its name:int roomId = 3; Room room = sfs.getRoomById(roomId); System.out.println("The name of Room " + roomId + " is " + room.getName()); - See Also:
IRoomManager.getRoomByName(String)
-
getRoomByName
public Room getRoomByName(java.lang.String name)
Description copied from interface:IRoomManagerRetrieves a Room object from its name.- Specified by:
getRoomByNamein interfaceIRoomManager- Parameters:
name- The name of the Room.- Returns:
- An object representing the requested Room;
nullif no Room object with the passed name exists in the Rooms list. Example
The following example retrieves a Room object and traces its id:String roomName = "The Lobby"; Room room = sfs.getRoomByName(roomName); System.out.println("The ID of Room '" + roomName + "' is " + room.getId()); - See Also:
IRoomManager.getRoomById(int)
-
getRoomList
public java.util.List<Room> getRoomList()
Description copied from interface:IRoomManagerReturns a list of Rooms currently "known" by the client. The list contains all the Rooms that are currently joined and all the Rooms belonging to the Room Groups that have been subscribed.NOTE: at login time, the client automatically subscribes all the Room Groups specified in the Zone's Default Room Groups setting.
- Specified by:
getRoomListin interfaceIRoomManager- Returns:
- The list of the available Room objects.
- See Also:
Room,JoinRoomRequest,SubscribeRoomGroupRequest,UnsubscribeRoomGroupRequest
-
getRoomCount
public int getRoomCount()
Description copied from interface:IRoomManagerReturns the current number of Rooms in the Rooms list.- Specified by:
getRoomCountin interfaceIRoomManager- Returns:
- The number of Rooms in the Rooms list.
-
getRoomGroups
public java.util.List<java.lang.String> getRoomGroups()
Description copied from interface:IRoomManagerReturns the names of Room Groups currently subscribed by the client.NOTE: at login time, the client automatically subscribes all the Room Groups specified in the Zone's Default Room Groups setting.
- Specified by:
getRoomGroupsin interfaceIRoomManager- Returns:
- A list of Room Group names.
- See Also:
Room.getGroupId(),SubscribeRoomGroupRequest,UnsubscribeRoomGroupRequest
-
getRoomListFromGroup
public java.util.List<Room> getRoomListFromGroup(java.lang.String groupId)
Description copied from interface:IRoomManagerRetrieves the list of Rooms which are part of the specified Room Group.- Specified by:
getRoomListFromGroupin interfaceIRoomManager- Parameters:
groupId- The name of the Group.- Returns:
- The list of Room objects belonging to the passed Room Group.
- See Also:
Room
-
getJoinedRooms
public java.util.List<Room> getJoinedRooms()
Description copied from interface:IRoomManagerReturns a list of Rooms currently joined by the client.- Specified by:
getJoinedRoomsin interfaceIRoomManager- Returns:
- The list of Room objects representing the Rooms currently joined by the client.
- See Also:
Room,JoinRoomRequest
-
getUserRooms
public java.util.List<Room> getUserRooms(User user)
Description copied from interface:IRoomManagerRetrieves a list of Rooms joined by the specified user. The list contains only those Rooms "known" by the Room Manager; the user might have joined others the client is not aware of.- Specified by:
getUserRoomsin interfaceIRoomManager- Parameters:
user- A User object representing the user to look for in the current Rooms list.- Returns:
- The list of Rooms joined by the passed user.
-
removeRoom
public void removeRoom(Room room)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
removeRoomin interfaceIRoomManager
-
removeRoomById
public void removeRoomById(int id)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
removeRoomByIdin interfaceIRoomManager
-
removeRoomByName
public void removeRoomByName(java.lang.String name)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
removeRoomByNamein interfaceIRoomManager
-
removeUser
public void removeUser(User user)
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
removeUserin interfaceIRoomManager
-
getSmartFox
public ISmartFox getSmartFox()
Description copied from interface:IRoomManager* API internal usage only *- Specified by:
getSmartFoxin interfaceIRoomManager
-
-