def handle(self, message):
     print "handles mapobject", message
     subtype = message.subtype
     object = message.unpacked_data
     Database.add(self.database, object)
     self.emit("got-new-message")
     return True
Esempio n. 2
0
 def handle(self, message):
     if message.subtype == JournalType.request:
         print "got new journal request", message
         Database.add(self.database, message.unpacked_data)
         self.emit("got-new-journal-request")
         return True
     elif message.subtype == JournalType.response:
         self.emit("got-new-journal-response")
Esempio n. 3
0
 def __init__(self, queue):
     Database.__init__(self)
     self.queue = queue
     self.dispatcher = None
     self.name = config.client.name
     self.id_stop = ObjectID(u"id_stop", None)
     self.id_start = ObjectID(u"id_start", None)
     self.id_current = ObjectID(u"id_current", None)
     self.id_nextstart = ObjectID(u"id_nextstart", None)
     self.id_nextstop = ObjectID(u"id_nextstop", None)
     self.get_ids()
     self.requested = False
Esempio n. 4
0
    def handle(self, message):
        print "handles mapobject", message
        subtype = message.subtype
        object = message.unpacked_data
        if subtype == ActionType.change:
            Database.change(self.database, object)
            self.database.emit("mapobject-changed", object)
            # if my mission was changed, change my mission
            if object.__class__ == MissionData:                
                for unit in object.units:
                    if self.controller is not None:
                        if unit.id == self.controller.unit_data.id:
                            self.emit("got-new-mission")

        elif subtype == ActionType.add:
            Database.add(self.database, object)
            # if a unit_data with my name was added, set it to mine
            if object.__class__ == UnitData:
                if self.controller is not None and object.name == self.controller.name:
                    self.controller.unit_data = object
            # if a mission with my unit_data was added, assign me to it (show it)
            if object.__class__ == MissionData:
                print self.controller.unit_data.id        
                for unit in object.units:
                    if self.controller is not None:
                        if unit.id == self.controller.unit_data.id:
                            self.emit("got-new-mission")

        elif subtype == ActionType.delete:
            Database.delete(self.database, object)
            self.database.emit("mapobject-deleted", object)
        else:
            raise Error("Invalid subtype")

        return True
Esempio n. 5
0
 def delete(self, object):
     Database.delete(self, object)
     msg = Message(self.name, "server", MessageType.object, ActionType.delete,
                   unpacked_data=object)
     self.queue.enqueue(msg.packed_data, msg.prio)
Esempio n. 6
0
 def __init__(self):
     Database.__init__(self, config.server.database)
     print "Connected to database at", config.server.database