Beispiel #1
0
    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
Beispiel #2
0
    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
Beispiel #3
0
 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()
Beispiel #4
0
 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)
Beispiel #5
0
 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)
Beispiel #6
0
 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'])
Beispiel #7
0
 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'])
Beispiel #8
0
 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))
Beispiel #9
0
 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))
Beispiel #10
0
 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()