| 724 | |
| 725 | |
| 726 | class Watcher(object): |
| 727 | def __init__(self, server, connector, name): |
| 728 | self._ready = None |
| 729 | self._server = server |
| 730 | self._connector = connector |
| 731 | self._name = name |
| 732 | self._room = None |
| 733 | self._file = None |
| 734 | self._position = None |
| 735 | self._lastUpdatedOn = time.time() |
| 736 | self._sendStateTimer = None |
| 737 | self._connector.setWatcher(self) |
| 738 | reactor.callLater(0.1, self._scheduleSendState) |
| 739 | |
| 740 | def setFile(self, file_): |
| 741 | if file_ and "name" in file_: |
| 742 | file_["name"] = truncateText(file_["name"], constants.MAX_FILENAME_LENGTH) |
| 743 | self._file = file_ |
| 744 | self._server.sendFileUpdate(self) |
| 745 | |
| 746 | def setRoom(self, room): |
| 747 | self._room = room |
| 748 | if room is None: |
| 749 | self._deactivateStateTimer() |
| 750 | else: |
| 751 | self._resetStateTimer() |
| 752 | self._askForStateUpdate(True, True) |
| 753 | |
| 754 | def setReady(self, ready): |
| 755 | self._ready = ready |
| 756 | |
| 757 | def getFeatures(self): |
| 758 | features = self._connector.getFeatures() |
| 759 | return features |
| 760 | |
| 761 | def isReady(self): |
| 762 | if self._server.disableReady: |
| 763 | return None |
| 764 | return self._ready |
| 765 | |
| 766 | def getRoom(self): |
| 767 | return self._room |
| 768 | |
| 769 | def getName(self): |
| 770 | return self._name |
| 771 | |
| 772 | def getVersion(self): |
| 773 | return self._connector.getVersion() |
| 774 | |
| 775 | def getFile(self): |
| 776 | return self._file |
| 777 | |
| 778 | def setPosition(self, position): |
| 779 | self._position = position |
| 780 | |
| 781 | def getPosition(self): |
| 782 | if self._position is None: |
| 783 | return None |