MCPcopy Create free account
hub / github.com/Syncplay/syncplay / RoomManager

Class RoomManager

syncplay/server.py:412–521  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

410 self._loadRoomsCallback(rooms)
411
412class RoomManager(object):
413 def __init__(self, roomsdbfile=None, permanentRooms=[]):
414 self._roomsDbFile = roomsdbfile
415 self._rooms = {}
416 self._permanentRooms = permanentRooms
417 if self._roomsDbFile is not None:
418 self._roomsDbHandle = RoomDBManager(self._roomsDbFile, self.loadRooms)
419 self._roomsDbHandle.connect()
420 else:
421 self._roomsDbHandle = None
422
423 def loadRooms(self, rooms):
424 roomsLoaded = []
425 for roomDetails in rooms:
426 roomName = truncateText(roomDetails[0], constants.MAX_ROOM_NAME_LENGTH)
427 room = Room(roomDetails[0], self._roomsDbHandle)
428 room.loadRoom(roomDetails)
429 if roomName in self._permanentRooms:
430 room.setPermanent(True)
431 self._rooms[roomName] = room
432 roomsLoaded.append(roomName)
433 for roomName in self._permanentRooms:
434 if roomName not in roomsLoaded:
435 roomDetails = (roomName, "", 0, 0, 0)
436 room = Room(roomName, self._roomsDbHandle)
437 room.loadRoom(roomDetails)
438 room.setPermanent(True)
439 self._rooms[roomName] = room
440
441 def broadcastRoom(self, sender, whatLambda):
442 room = sender.getRoom()
443 if room and room.getName() in self._rooms:
444 for receiver in room.getWatchers():
445 whatLambda(receiver)
446
447 def broadcast(self, sender, whatLambda):
448 for room in self._rooms.values():
449 for receiver in room.getWatchers():
450 whatLambda(receiver)
451
452 def getAllWatchersForUser(self, sender):
453 watchers = []
454 for room in self._rooms.values():
455 for watcher in room.getWatchers():
456 watchers.append(watcher)
457 return watchers
458
459 def getPersistentRooms(self, sender):
460 persistentRooms = []
461 for room in self._rooms.values():
462 if room.isPersistent():
463 persistentRooms.append(room.getName())
464 return persistentRooms
465
466 def getEmptyPersistentRooms(self):
467 emptyPersistentRooms = []
468 for room in self._rooms.values():
469 if len(room.getWatchers()) == 0:

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected