Ejemplo n.º 1
0
    def processSynchronizerBuffer(self, buffer):
        while not buffer.isEmpty():
            command = buffer.command()

            if (command == self.SYNCHRONIZER_COMMAND_USER_POSITION):
                self.setPosition(buffer.matrix_4x4())

            elif (command == self.SYNCHRONIZER_COMMAND_VEHICLE_POSITION):
                self.setVehiclePosition(buffer.matrix_4x4())
Ejemplo n.º 2
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'])
Ejemplo n.º 3
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'])
Ejemplo n.º 4
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))
Ejemplo n.º 5
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))
Ejemplo n.º 6
0
    def process(self, buffer):
        while not buffer.isEmpty():
            command = buffer.command()

            if command == self.NEW_OBJECT:
                new_objects_buffer = buffer.subBuffer()
                while not new_objects_buffer.isEmpty():
                    objects_id   = new_objects_buffer.itemID()
                    objects_name = new_objects_buffer.string()
                    for i in range(len(self._synchronizedObjectsToAdd)):
                        if self._synchronizedObjectsToAdd[i]._synchronize_object_name == objects_name:
                            object = self._synchronizedObjectsToAdd.pop(i)
                            self._synchronizedObjects[objects_id] = object
                            break

            elif command == self.OBJECT:
                objects_id   = buffer.itemID()
                objectBuffer = buffer.subBuffer()
                if objects_id in self._synchronizedObjects:
                    self._synchronizedObjects[objects_id].processSynchronizerBuffer(objectBuffer)
Ejemplo n.º 7
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()
Ejemplo n.º 8
0
    def process(self, buffer):
        while not buffer.isEmpty():
            command = buffer.command()

            if command == self.NEW_OBJECT:
                new_objects_buffer = buffer.subBuffer()
                while not new_objects_buffer.isEmpty():
                    objects_id = new_objects_buffer.itemID()
                    objects_name = new_objects_buffer.string()
                    for i in range(len(self._synchronizedObjectsToAdd)):
                        if self._synchronizedObjectsToAdd[
                                i]._synchronize_object_name == objects_name:
                            object = self._synchronizedObjectsToAdd.pop(i)
                            self._synchronizedObjects[objects_id] = object
                            break

            elif command == self.OBJECT:
                objects_id = buffer.itemID()
                objectBuffer = buffer.subBuffer()
                if objects_id in self._synchronizedObjects:
                    self._synchronizedObjects[
                        objects_id].processSynchronizerBuffer(objectBuffer)