def getCreationBuffer(self, parent_id): buffer = blender_cave.buffer.Buffer() item_id = self.getItemID() if not self._created: buffer.command(self.getParent().CREATE_ITEM) buffer.itemID(parent_id) buffer.itemID(item_id) item_name = self.getItemName() buffer.string(item_name) try: if self._item.parent is not None: parent_name = str(self._item.parent) else: parent_name = item_name except AttributeError: parent_name = item_name buffer.string(parent_name) self._created = True if not self.getParent()._firstCreation: self.activate(True, True) for item in self._getSubItems(): item = self.getParent().getItem(item) buffer += item.getCreationBuffer(item_id) return buffer
def addBuffer(self, buffer_name, obj_buffer): if self._original: buffer = blender_cave.buffer.Buffer() buffer.string(buffer_name) buffer.subBuffer(obj_buffer) file = open(self._backup_filename, "ab") file.write(buffer._buffer) file.close()
def quit(self, reason): if not hasattr(self, '_is_quitting'): self._is_quitting = True buffer = blender_cave.buffer.Buffer() buffer.command(self.QUIT) buffer.string(reason) self._send(buffer) while len(self._clients) > 0: self._select.run(True) super(Master, self).quit(reason)
def quit(self, reason): if not hasattr(self,'_is_quitting'): self._is_quitting = True buffer = blender_cave.buffer.Buffer() buffer.command(self.QUIT) buffer.string(reason) self._send(buffer) while len(self._clients) > 0: self._select.run(True) super(Master, self).quit(reason)
def _processMessageFromClient(self, peer): buffer = self._receiveFrom(peer) if buffer is None: self._delClient(peer) return while not buffer.isEmpty(): command = buffer.command() if command == self.QUIT: reason = buffer.string() self.quit(reason) else: raise blender_cave.exceptions.Controller("Unattended command (" + str(command) + ") from " + self._clients[peer]['address'])
def _processMessageFromClient(self, peer): buffer = self._receiveFrom(peer) if buffer is None: self._delClient(peer) return while not buffer.isEmpty(): command = buffer.command() if command == self.QUIT: reason = buffer.string() self.quit(reason) else: raise blender_cave.exceptions.Controller( "Unattended command (" + str(command) + ") from " + self._clients[peer]['address'])
def _processMessageFromMaster(self, peer): buffer = self._receiveFrom(peer) if buffer is None: self.quit("Lose connection from the master !") return while not buffer.isEmpty(): command = buffer.command() if command == self.EVERYBODY_HERE: self._switchToReady() elif command == self.QUIT: self._shutdown() self.quit(buffer.string()) elif command == self.SYNCHRONIZER: self._synchronizer.process(buffer.subBuffer()) else: raise blender_cave.exceptions.Controller("Unattended command (" + str(command) + ") from " + str(peer))
def _processMessageFromMaster(self, peer): buffer = self._receiveFrom(peer) if buffer is None: self.quit("Lose connection from the master !") return while not buffer.isEmpty(): command = buffer.command() if command == self.EVERYBODY_HERE: self._switchToReady() elif command == self.QUIT: self._shutdown() self.quit(buffer.string()) elif command == self.SYNCHRONIZER: self._synchronizer.process(buffer.subBuffer()) else: raise blender_cave.exceptions.Controller( "Unattended command (" + str(command) + ") from " + str(peer))
def __init__(self, parent, environ): super(ReloadBackupper, self).__init__(parent) self._backup_filename = environ.getEnvironment('rb_file') if self._backup_filename is None: self._backup_filename = os.path.join(tempfile.gettempdir(), 'blender_cave.!PID!.dat') self._backup_filename = self._backup_filename.replace('!PID!', str(os.getpid())) try: buffer = blender_cave.buffer.Buffer() file = open(self._backup_filename, "rb") buffer._buffer = file.read() file.close() self._buffers = {} while not buffer.isEmpty(): buffer_name = buffer.string() obj_buffer = buffer.subBuffer() self._buffers[buffer_name] = obj_buffer self._original = False except IOError: self._original = True file = open(self._backup_filename, "wb") file.close()