Example #1
0
def main():
    cm = ConnectionManager()
    connection = cm.get_connection()
    # create_classes(connection)
    insert_rows(connection, "descriptors", descriptors, "descriptor")
    insert_rows(connection, "schools", schools, "school")
    insert_rows(connection, "subschools", subschools, "subschool")
Example #2
0
def main():
    socketQue = myQueue()
    messenger = Messenger()
    randomM = RandomMatchMaker(socketQue, messenger)
    cManager = ConnectionManager(socketQue, messenger)
    randomM.start()
    cManager.start()
def testSendJob():
	print '=' * 60
	print '-' * 20, 'testSendJob', '-'* 20
	manager = ConnectionManager()
	processor = Processor(4)
	protocol = Protocol()
	newSock = AsynClientSocket()
	connection = SocketConnection(newSock, protocol, processor)
	
	manager.addConnection(newSock.getFileNo(), connection)

	assert len(manager) == 1 

	newSock.status.addStatus(CONST.STATUS_WF)
	connection.genJobs()
	assert processor.list[-1].__doc__ == "Protocol.handleConnected"
	connection.send("test", 5)
	connection.genJobs()
	assert processor.list[-1].__doc__ == "AsynClientSocket.sendImpl"

	assert connection.status.has(CONST.STATUS_C)
	print newSock.dump()
	print processor.dump()
	print '-' * 20, 'test done', '-' * 20
	print '=' * 60
Example #4
0
class HazelcastClient:
	def __init__(self,host='localhost',port=5701,username='******',password='******'):
		self.__connectionManager = ConnectionManager()
		self.__connectionManager.setCredentials( (host, port) , username, password)
		self.__connection = self.__connectionManager.getConnection()
		self.__connection.connect()
		self.__generalClientProxy = GeneralClientProxy(self.__connection)
		
	
	def close(self):
		self.__connectionManager.closeAll()
	
	def instances(self):
		return self.__generalClientProxy.instances()
	
	def members(self):
		return self.__generalClientProxy.members()
	
	def ping(self):
		return self.__generalClientProxy.ping()
	
	def destroy(self, type, name):
		return self.__generalClientProxy.destroy(type,name)
	
	def getMap(self,name):
		return MapClientProxy(name,self.__connection)
	
	def getQueue(self,name):
		return QueueClientProxy(name,self.__connection)
	
	def clusterTime(self):
		return self.__generalClientProxy.clusterTime()
	
	def partitions(self,key=None):
		return self.__generalClientProxy.partitions(key)
Example #5
0
	def apriScheda(self, uvID=None):
		if uvID == None:
			self.isApriScheda = True
			return self.identificaSchedaEsistente()
		else:
			if not self.checkActionSpatialFromId( "Apri scheda", uvID, True ):
				return

		QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
		self.chiudiSchedaAperta()

		self.uvScheda = uvID
		self.scheda = self.recuperaScheda( uvID )
		self.connect( self.scheda, SIGNAL("closed()"), self.onSchedaChiusa)
		if self.scheda._ID == None:
			# salva la scheda e imposta la geometria come abbinata a scheda
			try:
				QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
				ConnectionManager.startTransaction()
				self.scheda.save()
				AutomagicallyUpdater._updateValue( { "ABBINATO_A_SCHEDA" : '1' }, "GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE", "ID_UV_NEW", uvID )
			except ConnectionManager.AbortedException, e:
				QMessageBox.critical(self, "Errore", e.toString())
				return

			finally:
Example #6
0
	def testModificaVia(self, comune, via, ID):
		via = QString( via ).toUpper()
		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()

			# verifica se il nuovo indirizzo esiste già
			nuovoID = AutomagicallyUpdater.Query( "SELECT ID_INDIRIZZO FROM INDIRIZZO_VIA WHERE ZZ_COMUNIISTATCOM = ? AND VIA = ?", [comune, via] ).getFirstResult()

			if nuovoID == None:
				# il nuovo non esiste, aggiorna il vecchio
				self._updateValue( { 'VIA' : via, 'ZZ_COMUNIISTATCOM' : comune }, 'INDIRIZZO_VIA', 'ID_INDIRIZZO', ID )

			elif nuovoID == ID:
				# nessuna modifica, non salvare
				return False

			else:
				# aggiorna i valori nella tabella di normalizzazione
				# se duplicati non aggiornarli (verranno rimossi nella query successiva)
				self._updateValue( { 'INDIRIZZO_VIAID_INDIRIZZO' : nuovoID }, 'LOCALIZZAZIONE_EDIFICIO_INDIRIZZO_VIA', 'INDIRIZZO_VIAID_INDIRIZZO', ID, "LOCALIZZAZIONE_EDIFICIOIDLOCALIZZ NOT IN (SELECT LOCALIZZAZIONE_EDIFICIOIDLOCALIZZ FROM LOCALIZZAZIONE_EDIFICIO_INDIRIZZO_VIA WHERE INDIRIZZO_VIAID_INDIRIZZO = ?)", [nuovoID] )
				# rimuovi quelli non aggiornati nella query precedente poiché sarebbero stati dei duplicati
				self._deleteValue( 'LOCALIZZAZIONE_EDIFICIO_INDIRIZZO_VIA', { 'INDIRIZZO_VIAID_INDIRIZZO' : ID } )

				# aggiorna i civici
				self._updateValue( { 'INDIRIZZO_VIAID_INDIRIZZO' : nuovoID }, 'NUMERI_CIVICI', 'INDIRIZZO_VIAID_INDIRIZZO', ID )
				# elimina il vecchio indirizzo
				self._deleteValue( 'INDIRIZZO_VIA', { 'ID_INDIRIZZO' : ID } )

		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(self, "Errore", e.toString())
			return False
Example #7
0
    def rimuoviVoce(self, row=None):
        if row == None:
            selItems = self.table.selectedRanges()
            if len(selItems) <= 0:
                return

            row = selItems[0].topRow()

        if self._ID != None:
            # rimuovi dal db
            item = self.table.item(row, 0)
            if item != None:
                ID = item.data(Qt.UserRole).toString()
                if ID != None:
                    ConnectionManager.startTransaction()
                    # elimina il valore
                    self._deleteValue(self._tableWithValues,
                                      {self._tableWithValuesPkColumn: ID})
                    # elimina la riga dalla tabella di normalizzazione
                    values = {
                        self._pkColumn: self._ID,
                        self._parentPkColumn: ID
                    }
                    self._deleteValue(self._tableName, values)
                    ConnectionManager.endTransaction()

        # rimuovi dalla vista
        self.table.removeRow(row)
        self.dataChanged()
Example #8
0
	def creaNuovaGeometria(self, polygon=None):
		action = self.btnCreaNuovaGeometria.toolTip()

		if not self.checkActionScale( action, self.SCALE_MODIFY ):
			self.polygonDrawer.startCapture()
			self.polygonDrawer.stopCapture()
			self.btnCreaNuovaGeometria.setChecked(False)
			return
		if polygon == None:
			return self.polygonDrawer.startCapture()

		wkb = QByteArray(polygon.asWkb())

		# TODO: fai qui i test sul poligono
		if not self.checkActionSpatialFromWkb( action, wkb, self.srid ):
			self.btnCreaNuovaGeometria.setChecked(False)
			return

		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()

			# inserisce la nuova geometria nel layer
			if None == AutomagicallyUpdater._insertGeometriaNuova( wkb, self.srid ):
				return False

		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(self, "Errore", e.toString())
			return False
Example #9
0
 def _onQueryError(self, query, error, widget=None):
     msg = u"ERROR executing a query:\n\tquery: %s\n\terror: %s\n\twidget: %s" % (
         query, error, widget)
     if self.DEBUG:
         print msg.encode('utf-8')
     else:
         ConnectionManager.abortTransaction(msg)
Example #10
0
	def rimuoviVoce(self, row=None):
		if row == None:
			selItems = self.table.selectedRanges()
			if len(selItems) <= 0:
				return

			row = selItems[0].topRow()

		if self._ID != None:
			# rimuovi dal db
			item = self.table.item(row, 0)
			if item != None:
				ID = item.data( Qt.UserRole ).toString()
				if ID != None:
					ConnectionManager.startTransaction()
					# elimina il valore
					self._deleteValue( self._tableWithValues, { self._tableWithValuesPkColumn : ID } )
					# elimina la riga dalla tabella di normalizzazione
					values = {
						self._pkColumn : self._ID,
						self._parentPkColumn : ID
					}
					self._deleteValue( self._tableName, values )
					ConnectionManager.endTransaction()

		# rimuovi dalla vista
		self.table.removeRow(row)
		self.dataChanged()
Example #11
0
	def closeEvent(self, event):
		self.disconnect(self.iface, SIGNAL("projectRead()"), self.reloadLayersFromProject)
		self.disconnect(self.iface, SIGNAL("newProjectCreated()"), self.close)

		self.destroyPrinter()
		self.storeLastUsedExtent()
		self.chiudiSchedaAperta()
		self.removeLayersFromCanvas()
		TemporaryFile.clear()
		ConnectionManager.closeConnection()

		self.disconnect(self.iface.mapCanvas(), SIGNAL( "mapToolSet(QgsMapTool *)" ), self.toolChanged)
		del self.status

		self.nuovaPointEmitter.deleteLater()
		del self.nuovaPointEmitter
		self.esistentePointEmitter.deleteLater()
		del self.esistentePointEmitter
		self.fotoPointEmitter.deleteLater()
		del self.fotoPointEmitter
		self.polygonDrawer.deleteLater()
		del self.polygonDrawer
		self.lineDrawer.deleteLater()
		del self.lineDrawer

		ManagerWindow.instance = None
		self.emit( SIGNAL("closed()") )
		return QDockWidget.closeEvent(self, event)
Example #12
0
	def ripulisciGeometrie(self):
		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))

			# avvisa l'utente segnalando quante UV si stanno per eliminare
			# quindi chiedi se vuole davvero eliminarle
			numUV = AutomagicallyUpdater.Query( "SELECT count(*) FROM GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE AS gm1 WHERE (gm1.ZZ_STATO_GEOMETRIAID <> '2' /* non spezzate */ AND gm1.ID_UV_NEW NOT IN (SELECT GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATEID_UV_NEW FROM SCHEDA_UNITA_VOLUMETRICA) /* senza scheda associata */ ) OR (gm1.ZZ_STATO_GEOMETRIAID = '2' /* spezzate */ AND 0 = (SELECT count(*) FROM GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE as gm2 JOIN SCHEDA_UNITA_VOLUMETRICA AS uv ON gm2.ID_UV_NEW = uv.GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATEID_UV_NEW WHERE gm1.GEOMETRIE_UNITA_VOLUMETRICHE_ORIGINALI_DI_PARTENZACODICE = gm2.GEOMETRIE_UNITA_VOLUMETRICHE_ORIGINALI_DI_PARTENZACODICE) /* fanno parte dello stesso edificio */ ) /* i cui pezzi sono tutti senza geometria associata */" ).getFirstResult()
		except:
			raise
		finally:
			QApplication.restoreOverrideCursor()

		if numUV == None:
			return

		if int(numUV) <= 0:
			QMessageBox.information(self, "Nessuna geometria trovata", "Non esistono geometrie senza scheda associata." )
			return

		if QMessageBox.Ok != QMessageBox.warning(self, "Eliminazione geometrie non associate", u"Esistono %s geometrie senza alcuna scheda associata. Vuoi eliminarle? L'operazione non è reversibile." % numUV, QMessageBox.Ok|QMessageBox.Cancel ):
			return

		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()

			# eliminazione geometrie non associate ad alcuna scheda: vedi query precedente
			AutomagicallyUpdater._deleteGeometria( None, "ID_UV_NEW IN (SELECT gm1.ID_UV_NEW FROM GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE AS gm1 WHERE (gm1.ZZ_STATO_GEOMETRIAID <> '2' /* non spezzate */ AND gm1.ID_UV_NEW NOT IN (SELECT GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATEID_UV_NEW FROM SCHEDA_UNITA_VOLUMETRICA) /* senza scheda associata */ ) OR (gm1.ZZ_STATO_GEOMETRIAID = '2' AND 0 = (SELECT count(*) FROM GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE as gm2 JOIN SCHEDA_UNITA_VOLUMETRICA AS uv ON gm2.ID_UV_NEW = uv.GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATEID_UV_NEW WHERE gm1.GEOMETRIE_UNITA_VOLUMETRICHE_ORIGINALI_DI_PARTENZACODICE = gm2.GEOMETRIE_UNITA_VOLUMETRICHE_ORIGINALI_DI_PARTENZACODICE)))" )

		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(self, "Errore", e.toString())
			return
Example #13
0
 def run(self):
     print("Server Starting Up.")
     self.connection_manager = ConnectionManager()
     print("Connection Manager Started")
     self.connection_manager.start_accepting_connections()
     print("Connection Manager is now Accepting New Connections")
     while True:
         self.connection_manager.manage_connections()
         stackless.run()
Example #14
0
	def __init__(self, my_port=50082, core_node_host=None,
					core_node_port=None):
		self.server_state = STATE_INIT
		print("initializing server")
		self.my_ip = self.__get_myip()
		print('Server IP address is set to ... ', self.my_ip)
		self.my_port = my_port
		self.cm = ConnectionManager(self.my_ip, self.my_port)
		self.core_node_host = core_node_host
		self.core_node_port = core_node_port
Example #15
0
	def btnDeleteTabClicked(self):
		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()
			self.deleteTab()

		except Exception, e:
			if isinstance(e, ConnectionManager.AbortedException):
				QMessageBox.critical(self, "Errore", e.toString())
				return False
			raise
Example #16
0
	def btnDeleteTabClicked(self):
		refreshCanvas = False

		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()
			refreshCanvas = self.deleteTab()

		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(self, "Errore", e.toString())
			return False
Example #17
0
    def btnDeleteTabClicked(self):
        refreshCanvas = False

        try:
            QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
            ConnectionManager.startTransaction()
            refreshCanvas = self.deleteTab()

        except ConnectionManager.AbortedException, e:
            QMessageBox.critical(self, "Errore", e.toString())
            return False
Example #18
0
	def aggiungiRilevatore(self):
		if self.nomeEdit.text().isEmpty() or self.cognomeEdit.text().isEmpty():
			return

		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()
			self._insertRilevatore(self.nomeEdit.text(), self.cognomeEdit.text(), self.getValue(self.comuneCombo))

		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(self, "Errore", e.toString())
			return False
Example #19
0
    def __init__(self):

        self.tcpCon = ConnectionManager('tcp')
        self.tcpCon.addClient('169.254.99.212', 9003)
        #self.tcpCon.addClient('192.168.2.5', 9002)

        self.pub = rospy.Publisher('/RosAria/cmd_vel', Twist, queue_size=10)
        self.subscriber = rospy.Subscriber("/camera/image_raw",
                                           Image,
                                           self.callback,
                                           queue_size=1)
        rospy.on_shutdown(self.shutdown)
Example #20
0
    def aggiungiRilevatore(self):
        if self.nomeEdit.text().isEmpty() or self.cognomeEdit.text().isEmpty():
            return

        try:
            QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
            ConnectionManager.startTransaction()
            self._insertRilevatore(self.nomeEdit.text(),
                                   self.cognomeEdit.text(),
                                   self.getValue(self.comuneCombo))

        except ConnectionManager.AbortedException, e:
            QMessageBox.critical(self, "Errore", e.toString())
            return False
Example #21
0
def testProxy(keyword, fileReader):
    cm = ConnectionManager()
    cm._get_connection()
    response = cm.request("**REDACTED**").read()  # TODO: hardcoded
    # response = cm.request("http://icanhazip.com/").read() # TODO: change
    soup = BeautifulSoup(response, "lxml")
    data = ""
    for extract in soup.find_all(text=re.compile(keyword + '*')):
        data += str(extract) + '\n'
    for extract in soup.find_all('a'):
        if re.search(keyword, str(extract), re.IGNORECASE):
            data += str(extract) + '\n'
    for extract in soup.find_all('href'):
        if re.search(keyword, str(extract), re.IGNORECASE):
            data += str(extract) + '\n'
    for extract in soup.find_all('span'):
        if re.search(keyword, str(extract), re.IGNORECASE):
            data += str(extract) + '\n'
    for extract in soup.find_all('button'):
        if re.search(keyword, str(extract), re.IGNORECASE):
            data += str(extract) + '\n'

    # append comparitor so is included in gitignore
    fileReader = fileReader + "_comparitor"
    comparitor = ""

    # determine if file exist
    if os.path.isfile(fileReader) == True:
        # required for reading. there might be a more optimum step to do this
        r = open(fileReader, "r")
        comparitor = r.read()
    else:  # this is the first run, no need to alert
        file = open(fileReader, "w")
        file.write(data)
        comparitor = data
        return 0

    try:
        file = open(fileReader, "w")

        if data != comparitor:
            file.write(data)
            return 1
        else:
            file.write(data)
            return 0
    except:
        file.write(data)
        return 0
Example #22
0
	def assegnaGeomEsistenteByUvID(self, uvID=None):
		QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))

		index = self.addTab()
		currentTab = self.tabWidget.widget(index)
		currentTab.setUV( uvID )	# aggiorna le info di DEBUG sulla UV

		# imposta la geometria come abbinata a scheda
		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()
			AutomagicallyUpdater._updateValue( { "ABBINATO_A_SCHEDA" : '1' }, "GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE", "ID_UV_NEW", uvID )
		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(self, "Errore", e.toString())
			return
Example #23
0
    def eliminaRilevatore(self):
        ID = self.getValue(self.rilevatoriTable)
        if ID == None:
            return

        # elimina il rilevatore
        try:
            QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
            ConnectionManager.startTransaction()
            if not self._deleteValue('RILEVATORE', {'ID': ID}):
                return

        except ConnectionManager.AbortedException, e:
            QMessageBox.critical(self, "Errore", e.toString())
            return False
Example #24
0
	def eliminaRilevatore(self):
		ID = self.getValue(self.rilevatoriTable)
		if ID == None:
			return

		# elimina il rilevatore
		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()
			if not self._deleteValue( 'RILEVATORE', { 'ID' : ID } ):
				return

		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(self, "Errore", e.toString())
			return False
Example #25
0
class Server:

    def __init__(self):
        self.connection_manager = None
        self.logger = None

    def run(self):
        print("Server Starting Up.")
        self.connection_manager = ConnectionManager()
        print("Connection Manager Started")
        self.connection_manager.start_accepting_connections()
        print("Connection Manager is now Accepting New Connections")
        while True:
            self.connection_manager.manage_connections()
            stackless.run()
Example #26
0
class BountyCloudVS:

    def __init__(self):

        self.tcpCon = ConnectionManager('tcp')
        self.tcpCon.addClient('169.254.99.212', 9003)
        #self.tcpCon.addClient('192.168.2.5', 9002)


        self.pub = rospy.Publisher('/RosAria/cmd_vel', Twist, queue_size=10)
        self.subscriber = rospy.Subscriber("/camera/image_raw", Image, self.callback,  queue_size = 1)
        rospy.on_shutdown(self.shutdown)



    def shutdown(self):
        # stop the robot
        self.robot_vel(0,0)
        # write out the success and fails?

    def robot_vel(self, forward, angular):
        twist = Twist()
        twist.linear.x = forward
        twist.linear.y = 0
        twist.linear.z = 0
        twist.angular.x = 0
        twist.angular.y = 0
        twist.angular.z = angular
        self.pub.publish(twist)

    ## t0 -----callback-----
    def callback(self, ros_data):
        print("got an image!!!")
        #self.curTime = time.time()
        #self.timeDelta = self.curTime - self.prevTime
        #self.prevTime = self.curTime
        #print("time from last image is {}".format(self.timeDelta))
        ### get image data from camera and process it (don't use ROS just use openCV)
        self.image = bytearray(ros_data.data)
        self.image = np.array(self.image, dtype="uint8").reshape(HEIGHT,WIDTH,CHANNELS)



        hsv = cv2.cvtColor(self.image,cv2.COLOR_BGR2HSV)
        ORANGE_MIN = np.array([5, 125, 100],np.uint8)
        ORANGE_MAX = np.array([20, 255, 255],np.uint8)
        reducedimg = cv2.inRange(hsv,ORANGE_MIN, ORANGE_MAX)
        self.tcpCon.send(str(reducedimg))
Example #27
0
	def eliminaScheda(self, codice=None):
		if codice == None:
			self.isApriScheda = False
			return self.identificaSchedaEsistente()
		else:
			if not self.checkActionSpatialFromId( "Elimina scheda", codice, True ):
				return

		# se c'è una scheda aperta verifica se si stia per eliminare quella
		if self.scheda != None:
			schedaID = AutomagicallyUpdater.Query( "SELECT SCHEDA_EDIFICIOID FROM SCHEDA_UNITA_VOLUMETRICA WHERE GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATEID_UV_NEW = ?", [ codice ] ).getFirstResult()
			if schedaID != None:
				# esiste una scheda uv associata alla geometria
				aperta = schedaID == self.scheda._ID
			else:
				# geometria non associata a una scheda uv
				# potrebbe però essere una nuova uv selezionata nella scheda 
				# aperta e per questo non ancora salvata
				aperta = AutomagicallyUpdater.Query( "SELECT ABBINATO_A_SCHEDA FROM GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE WHERE ID_UV_NEW = ?", [ codice ] ).getFirstResult() == '1'
				
			if aperta:
				QMessageBox.warning( self, "Eliminazione scheda", u"La geometria selezionata appartiene alla scheda edificio aperta. Prima di proseguire è necessario chiudere la scheda.", QMessageBox.Ok )
				self.scheda.setMinimized( False )
				return

		QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))

		# avvisa l'utente segnalando quante UV sono collegate a questa scheda
		# quindi chiedi se vuole davvero eliminare la scheda
		numUV = AutomagicallyUpdater.Query( "SELECT count(*) FROM SCHEDA_UNITA_VOLUMETRICA WHERE SCHEDA_EDIFICIOID IN (SELECT ed.ID FROM SCHEDA_EDIFICIO AS ed JOIN SCHEDA_UNITA_VOLUMETRICA AS uv ON uv.SCHEDA_EDIFICIOID = ed.ID WHERE uv.GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATEID_UV_NEW = ?)", [codice] ).getFirstResult()

		QApplication.restoreOverrideCursor()
		if numUV == None:
			return

		if QMessageBox.Ok != QMessageBox.warning( self, "Eliminazione scheda", u"La scheda ha %s UV associate. Eliminare? L'operazione non è reversibile." % numUV, QMessageBox.Ok|QMessageBox.Cancel ):
			return

		# elimina la scheda
		scheda = self.recuperaScheda( codice )
		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()
			scheda.delete()

		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(self, "Errore", e.toString())
			return
Example #28
0
    def __init__(self,protoPathList, mesgHandle, excludeProtos, sourceId, requestId=0):
        self.messageDict = MessageSpecDict()
        inputImpl = ControlInputer()
        outputImpl = ControlOutputer(sys.stdout)
        self.inputer = MessageInputCore(inputImpl)
        self.outputer = MessageOutputCore(outputImpl)
        self.foutputer = MessageOutputCore(JsonOutputer(None))
        self.finputer = MessageInputCore(JsonInputer(None))
        from ConnectionManager import ConnectionManager
        self.connectionManager = ConnectionManager(self)
        self.variables = {}
        self.sourceId = sourceId
        self.onConnected = DSignal()
        self.onConnectFailed = DSignal()


        ########
        self.requsetId = requestId
        ########
        try:
            parser = ProtoParser()
            for p in protoPathList:
                parser.parse(p,self.messageDict,excludeProtos)
        except exceptions.Exception,ex:
            print(str(type(ex)) + ":" + str(ex))
Example #29
0
	def _insertValue(self, name2valueDict, table, pk):
		query = ConnectionManager.getNewQuery( AutomagicallyUpdater.EDIT_CONN_TYPE )
		if query == None:
			return

		if name2valueDict == None:
			name2valueDict = {}

		IDComune = self._getIDComune()
		IDRilevatore = self._getIDRilevatore()
		progressivo = self._getProgressivoID()
		macAddress = self._getMacAddress()

		fields = QStringList()
		values = QStringList()
		bindValues = []
		if pk != None:
			fields << pk
			values << "'" + IDComune + "-'||strftime('%Y%m%d%H%M%S', 'now')||'-" + macAddress + "-" + str(progressivo) + "_" + IDRilevatore + "'"
			
		for name, value in name2valueDict.iteritems():
			fields << name
			if value == None and QString(name).startsWith( "ZZ" ):
				value = self.VALORE_NON_INSERITO
			elif isinstance(value, (buffer, QByteArray)):
				bindValues.append( value )
				value = '?'
			else:
				value = self._getDBStrValue(value)
			values << value

		# memorizza la riga
		query.prepare( "INSERT INTO " + table + " (" + fields.join(", ") + ") VALUES (" + values.join(", ") + ")" )
		for v in bindValues:
			query.addBindValue( QVariant(v) if v != None else QVariant() )

		if not query.exec_():
			self._onQueryError( query.lastQuery(), query.lastError().text(), self )
			return

		ROWID = query.lastInsertId().toString()	# restituisce ROWID
		if pk == None:
			ROWID = None if ROWID.isEmpty() else ROWID
			if self.DEBUG:
				print ">>>", query.lastQuery().toUtf8(), " >>> ROWID = ", ROWID
			return ROWID

		# recupera il valore della pk
		insertQuery = query.lastQuery()
		query.prepare( "SELECT " + pk + " FROM " + table + " WHERE ROWID = ?" )
		query.addBindValue( ROWID )
		if not query.exec_() or not query.next():
			self._onQueryError( query.lastQuery(), query.lastError().text(), self )
			return

		ID = query.value(0).toString()
		if self.DEBUG:
			print ">>>", insertQuery.toUtf8(), " >>> pk = ", ID, ">>> ROWID =", ROWID

		return ID
Example #30
0
	def loadLayerFoto(self):
		# carica il layer con le foto
		if QgsMapLayerRegistry.instance().mapLayer( ManagerWindow.VLID_FOTO ) == None:
			ManagerWindow.VLID_FOTO = ''

			query = "SELECT ROWID AS pk, ID, MakePoint(GEOREF_PROIET_X, GEOREF_PROIET_Y, 3003) AS geometria FROM FOTO_GEOREF WHERE geometria IS NOT NULL"

			conn = ConnectionManager.getConnection()
			uri = QgsDataSourceURI()
			uri.setDatabase(conn.databaseName())
			uri.setDataSource('', "(%s)" % query, 'geometria', '', 'pk')
			vl = QgsVectorLayer( uri.uri(), self.LAYER_FOTO, "spatialite" )
			if vl == None or not vl.isValid() or not vl.setReadOnly(True):
				return False

			# imposta lo stile del layer
			style_path = os.path.join( currentPath, ManagerWindow.STYLE_FOLDER, ManagerWindow.STYLE_FOTO )
			(errorMsg, result) = vl.loadNamedStyle( style_path )
			self.iface.legendInterface().refreshLayerSymbology(vl)

			ManagerWindow.VLID_FOTO = self._getLayerId(vl)
			self._addMapLayer(vl)
			# set custom property
			vl.setCustomProperty( "loadedByOmeroRTPlugin", QVariant("VLID_FOTO") )
		return True
Example #31
0
class BountyCloudVS:
    def __init__(self):

        self.tcpCon = ConnectionManager('tcp')
        self.tcpCon.addClient('169.254.99.212', 9003)
        #self.tcpCon.addClient('192.168.2.5', 9002)

        self.pub = rospy.Publisher('/RosAria/cmd_vel', Twist, queue_size=10)
        self.subscriber = rospy.Subscriber("/camera/image_raw",
                                           Image,
                                           self.callback,
                                           queue_size=1)
        rospy.on_shutdown(self.shutdown)

    def shutdown(self):
        # stop the robot
        self.robot_vel(0, 0)
        # write out the success and fails?

    def robot_vel(self, forward, angular):
        twist = Twist()
        twist.linear.x = forward
        twist.linear.y = 0
        twist.linear.z = 0
        twist.angular.x = 0
        twist.angular.y = 0
        twist.angular.z = angular
        self.pub.publish(twist)

    ## t0 -----callback-----
    def callback(self, ros_data):
        print("got an image!!!")
        #self.curTime = time.time()
        #self.timeDelta = self.curTime - self.prevTime
        #self.prevTime = self.curTime
        #print("time from last image is {}".format(self.timeDelta))
        ### get image data from camera and process it (don't use ROS just use openCV)
        self.image = bytearray(ros_data.data)
        self.image = np.array(self.image,
                              dtype="uint8").reshape(HEIGHT, WIDTH, CHANNELS)

        hsv = cv2.cvtColor(self.image, cv2.COLOR_BGR2HSV)
        ORANGE_MIN = np.array([5, 125, 100], np.uint8)
        ORANGE_MAX = np.array([20, 255, 255], np.uint8)
        reducedimg = cv2.inRange(hsv, ORANGE_MIN, ORANGE_MAX)
        self.tcpCon.send(str(reducedimg))
Example #32
0
    def assegnaGeomEsistenteByUvID(self, uvID=None):
        QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))

        index = self.addTab()
        currentTab = self.tabWidget.widget(index)
        currentTab.setUV(uvID)  # aggiorna le info di DEBUG sulla UV

        # imposta la geometria come abbinata a scheda
        try:
            QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
            ConnectionManager.startTransaction()
            AutomagicallyUpdater._updateValue(
                {"ABBINATO_A_SCHEDA": '1'},
                "GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE", "ID_UV_NEW", uvID)
        except ConnectionManager.AbortedException, e:
            QMessageBox.critical(self, "Errore", e.toString())
            return
Example #33
0
	def copiaGeometria(self, feat):
		if feat == None:
			return

		try:
			QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
			ConnectionManager.startTransaction()

			# copia la geometria selezionata nel layer delle geometrie nuove o modificate
			codice = feat.attributeMap()[0].toString()
			ID = AutomagicallyUpdater._insertGeometriaCopiata( codice )
			if ID == None:
				return

		except ConnectionManager.AbortedException, e:
			QMessageBox.critical(None, "Errore", e.toString())
			return
def testAddSocket():
	print '=' * 60
	print '-' * 20, 'testAddSocket', '-'* 20
	manager = ConnectionManager()
	processor = Processor(4)
	protocol = Protocol()
	newSock = AsynClientSocket()
	connection = SocketConnection(newSock, protocol, processor)
	manager.addConnection(newSock.getFileNo(), connection)
	assert len(manager) == 1

	newSock.status.addStatus(CONST.STATUS_UD)
	manager.clean()

	assert len(manager) == 0 
	print '-' * 20, 'test done', '-' * 20
	print '=' * 60
Example #35
0
    def testModificaVia(self, comune, via, ID):
        via = QString(via).toUpper()
        try:
            QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
            ConnectionManager.startTransaction()

            # verifica se il nuovo indirizzo esiste già
            nuovoID = AutomagicallyUpdater.Query(
                "SELECT ID_INDIRIZZO FROM INDIRIZZO_VIA WHERE ZZ_COMUNIISTATCOM = ? AND VIA = ?",
                [comune, via]).getFirstResult()

            if nuovoID == None:
                # il nuovo non esiste, aggiorna il vecchio
                self._updateValue({
                    'VIA': via,
                    'ZZ_COMUNIISTATCOM': comune
                }, 'INDIRIZZO_VIA', 'ID_INDIRIZZO', ID)

            elif nuovoID == ID:
                # nessuna modifica, non salvare
                return False

            else:
                # aggiorna i valori nella tabella di normalizzazione
                # se duplicati non aggiornarli (verranno rimossi nella query successiva)
                self._updateValue(
                    {'INDIRIZZO_VIAID_INDIRIZZO': nuovoID},
                    'LOCALIZZAZIONE_EDIFICIO_INDIRIZZO_VIA',
                    'INDIRIZZO_VIAID_INDIRIZZO', ID,
                    "LOCALIZZAZIONE_EDIFICIOIDLOCALIZZ NOT IN (SELECT LOCALIZZAZIONE_EDIFICIOIDLOCALIZZ FROM LOCALIZZAZIONE_EDIFICIO_INDIRIZZO_VIA WHERE INDIRIZZO_VIAID_INDIRIZZO = ?)",
                    [nuovoID])
                # rimuovi quelli non aggiornati nella query precedente poiché sarebbero stati dei duplicati
                self._deleteValue('LOCALIZZAZIONE_EDIFICIO_INDIRIZZO_VIA',
                                  {'INDIRIZZO_VIAID_INDIRIZZO': ID})

                # aggiorna i civici
                self._updateValue({'INDIRIZZO_VIAID_INDIRIZZO': nuovoID},
                                  'NUMERI_CIVICI', 'INDIRIZZO_VIAID_INDIRIZZO',
                                  ID)
                # elimina il vecchio indirizzo
                self._deleteValue('INDIRIZZO_VIA', {'ID_INDIRIZZO': ID})

        except ConnectionManager.AbortedException, e:
            QMessageBox.critical(self, "Errore", e.toString())
            return False
Example #36
0
		def getQuery(self):
			query = ConnectionManager.getNewQuery(self.connType)
			if query == None:
				return
			query.prepare(self.query)
			for p in self.params:
				query.addBindValue( "%s" % p if p != None else QVariant() )

			return query
Example #37
0
        def getQuery(self):
            query = ConnectionManager.getNewQuery(self.connType)
            if query == None:
                return
            query.prepare(self.query)
            for p in self.params:
                query.addBindValue("%s" % p if p != None else QVariant())

            return query
Example #38
0
    def __init__(self,protoPathList,metaPath,mesgHandle):
        self.messageDict = MessageSpecDict()
        inputImpl = ControlInputer()
        outputImpl = ControlOutputer(sys.stdout)
        self.inputer = MessageInputCore(inputImpl)
        self.outputer = MessageOutputCore(outputImpl)
        self.foutputer = MessageOutputCore(JsonOutputer(None))
        self.finputer = MessageInputCore(JsonInputer(None))
        from ConnectionManager import ConnectionManager
        self.connectionManager = ConnectionManager(self)
        self.variables = {}

        parser = ProtoParser()
        for p in protoPathList:
            parser.parse(p,self.messageDict)

        #print self.messageDict.codeDict
        self.customHandle = mesgHandle
        self.customHandle.setView(self)
Example #39
0
	def setDBConnection(self):
		path = self.getPathToDB()
		while( path != None ):
			if ConnectionManager.setConnection(path):
				return True

			QMessageBox.critical(self, "RT Omero", "Connessione non riuscita. \nImpossibile collegarsi al database %s" % path )
			path = self.getPathToDB(True)

		return False
Example #40
0
    def __init__(self):

        self.tcpCon = ConnectionManager('tcp')
        self.tcpCon.addClient('169.254.99.212', 9003)
        #self.tcpCon.addClient('192.168.2.5', 9002)


        self.pub = rospy.Publisher('/RosAria/cmd_vel', Twist, queue_size=10)
        self.subscriber = rospy.Subscriber("/camera/image_raw", Image, self.callback,  queue_size = 1)
        rospy.on_shutdown(self.shutdown)
Example #41
0
    def _updateValue(self,
                     name2valueDict,
                     table,
                     pk,
                     ID,
                     filterStr=None,
                     filterParams=None):
        query = ConnectionManager.getNewQuery(
            AutomagicallyUpdater.EDIT_CONN_TYPE)
        if query == None:
            return

        if name2valueDict == None or len(name2valueDict) <= 0:
            return ID

        assignments = QStringList()
        bindValues = []
        for name, value in name2valueDict.iteritems():
            if value == None and QString(name).startsWith("ZZ"):
                value = self.VALORE_NON_INSERITO
            elif isinstance(value, (buffer, QByteArray)):
                bindValues.append(value)
                value = '?'
            else:
                value = self._getDBStrValue(value)

            assignments << "%s = %s" % (name, value)

        whereClauses = QStringList()
        if pk != None:
            whereClauses << pk + " = ?"
            bindValues.append(ID)

        if filterStr != None:
            whereClauses << "%s" % filterStr
            if filterParams != None:
                bindValues.extend(filterParams)

        whereStr = ''
        if whereClauses.count() > 0:
            whereStr = " WHERE " + whereClauses.join(" AND ")

        # aggiorna la riga
        query.prepare("UPDATE " + table + " SET " + assignments.join(", ") +
                      whereStr)
        for v in bindValues:
            query.addBindValue(QVariant(v) if v != None else QVariant())

        if not query.exec_():
            self._onQueryError(query.lastQuery(),
                               query.lastError().text(), self)
            return
        if self.DEBUG:
            print ">>>", query.lastQuery().toUtf8(), " >>> pk = ", ID
        return ID
Example #42
0
 def login(self):
     QtGui.QApplication.setOverrideCursor(
         QtGui.QCursor(QtCore.Qt.WaitCursor))
     address = str(self.diag_ui.address.text())
     port = str(self.diag_ui.port.text())
     username = str(self.diag_ui.userName.text())
     if not self.diag_ui.cartaoAuth.isChecked() and not username:
         QtGui.QApplication.restoreOverrideCursor()
         return
     if not address or not port:
         QtGui.QApplication.restoreOverrideCursor()
         return
     if not ConnectionManager.is_ip_address(address) or not self.valid_port(
             port):
         QtGui.QApplication.restoreOverrideCursor()
         return
     if self.diag_ui.cartaoAuth.isChecked():
         user = SuperUser(ccutils=self.ccutils)
     else:
         user = SuperUser(username)
     try:
         self.comm = ConnectionManager(address, port, self, user)
     except ConnectionManagerError:
         QtGui.QApplication.restoreOverrideCursor()
         self.show_error("Connection ERROR")
         return
     else:
         self.connect(self.comm, self.comm.signal, self.updateChat)
         self.connect(self.comm, self.comm.list_signal, self.list_users)
         self.connect(self.comm, self.comm.error_signal, self.show_error)
         self.connect(self.comm, self.comm.change_list,
                      self.change_listitem)
         self.connect(self.comm, self.comm.append_msg_id, self.append_id)
         self.connect(self.comm, self.comm.append_self_msg,
                      self.append_self_msg)
         if self.diag_ui.radioButton.isChecked():
             self.cipher_suite = 1
         else:
             self.cipher_suite = 2
         QtGui.QApplication.restoreOverrideCursor()
         return self.login_dialog.accept()
def get_spells():
    cm = ConnectionManager()
    es = Elasticsearch()
    sql = """
    SELECT
      s.id,
      s.name,
      s.description,
      s.action,
      s.components,
      s.`range`,
      s.effect,
      s.duration,
      s.saving_throw,
      s.spell_resistance,
      s.source_book,
      sch.school,
      sub.subschool,
      group_concat(c.class) as class,
      group_concat(sbc.spell_level) as spell_level
    FROM spells s
      INNER JOIN spells_by_class sbc ON sbc.spell_id = s.id
      inner join classes c on sbc.class_id = c.id
      inner join schools sch on sch.id = s.school_id
      left join subschools sub on s.subschool_id = sub.id
    GROUP BY s.id;
    """
    connection = cm.get_connection()
    cursor = connection.cursor(MySQLdb.cursors.DictCursor)

    cursor.execute(sql)
    resultSet = cursor.fetchall()

    for row in resultSet:
        row["class_levels"] = dict(
            zip(row["class"].split(","), row["spell_level"].split(",")))
        row["components"] = row["components"].decode('string_escape')
        del (row["class"])
        del (row["spell_level"])

        es.index(index="pfspells", doc_type='spell', id=row["id"], body=row)
Example #44
0
    def __init__(self):

        UPnPDevice.__init__(self, AVTransport(), ConnectionManager(),
                            RenderingControl())

        self.set_prop(self.PROP_UPNP_FRIENDLY_NAME, "MediaBox Media Renderer")

        self.set_prop(self.PROP_UPNP_UDN,
                      "uuid:e09c6bee-7939-4fff-bf26-8d1f30ca6153")
        self.set_prop(self.PROP_UPNP_DEVICE_TYPE,
                      "urn:schemas-upnp-org:device:MediaRenderer:2")
        self.set_prop(self.PROP_UPNP_SERVICE_PORT, 47806)
def get_spells():
    cm = ConnectionManager()
    es = Elasticsearch()
    sql = """
    SELECT
      s.id,
      s.name,
      s.description,
      s.action,
      s.components,
      s.`range`,
      s.effect,
      s.duration,
      s.saving_throw,
      s.spell_resistance,
      s.source_book,
      sch.school,
      sub.subschool,
      group_concat(c.class) as class,
      group_concat(sbc.spell_level) as spell_level
    FROM spells s
      INNER JOIN spells_by_class sbc ON sbc.spell_id = s.id
      inner join classes c on sbc.class_id = c.id
      inner join schools sch on sch.id = s.school_id
      left join subschools sub on s.subschool_id = sub.id
    GROUP BY s.id;
    """
    connection = cm.get_connection()
    cursor = connection.cursor(MySQLdb.cursors.DictCursor)

    cursor.execute(sql)
    resultSet = cursor.fetchall()

    for row in resultSet:
        row["class_levels"] = dict(zip(row["class"].split(","),row["spell_level"].split(",")))
        row["components"] = row["components"].decode('string_escape')
        del(row["class"])
        del(row["spell_level"])

        es.index(index="pfspells", doc_type='spell', id=row["id"], body=row)
Example #46
0
    def ServiceEntryPoint(self):
        
        ConnectionManager().checkServer()
        
        lastProgressUpdate = datetime.today()
        
        startupComplete = False
        #interval_FullSync = 600
        #interval_IncrementalSync = 300
        
        #cur_seconds_fullsync = interval_FullSync
        #cur_seconds_incrsync = interval_IncrementalSync
        
        user = UserClient()
        player = Player()
        ws = WebSocketThread()
        
        lastFile = None
        
        while not self.KodiMonitor.abortRequested():
            
            if self.KodiMonitor.waitForAbort(1):
                # Abort was requested while waiting. We should exit
                break
            
            if xbmc.Player().isPlaying():
                try:
                    playTime = xbmc.Player().getTime()
                    totalTime = xbmc.Player().getTotalTime()
                    currentFile = xbmc.Player().getPlayingFile()

                    if(player.played_information.get(currentFile) != None):
                        player.played_information[currentFile]["currentPosition"] = playTime
                    
                    # send update
                    td = datetime.today() - lastProgressUpdate
                    secDiff = td.seconds
                    if(secDiff > 3):
                        try:
                            player.reportPlayback()
                        except Exception, msg:
                            self.logMsg("Exception reporting progress: %s" % msg)
                            pass
                        lastProgressUpdate = datetime.today()
                    # only try autoplay when there's 20 seconds or less remaining and only once!
                    if (totalTime - playTime <= 20 and (lastFile==None or lastFile!=currentFile)):
                        lastFile = currentFile
                        player.autoPlayPlayback()
                    
                except Exception, e:
                    self.logMsg("Exception in Playback Monitor Service: %s" % e)
                    pass
Example #47
0
	def _insertGeometria(self, wkb=None, srid=-1, codice=None, stato=1):
		query = ConnectionManager.getNewQuery( AutomagicallyUpdater.EDIT_CONN_TYPE )
		if query == None:
			return

		IDComune = self._getIDComune()
		IDRilevatore = self._getIDRilevatore()
		progressivo = self._getProgressivoID()
		macAddress = self._getMacAddress()

		IDGeometria = "'" + IDComune + "-'||strftime('%Y%m%d%H%M%S', 'now')||'-" + macAddress + "-" + str(progressivo) + "_" + IDRilevatore + "'"

		# costruisci la query
		insertStr = "INSERT INTO GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE (ID_UV_NEW, GEOMETRIE_UNITA_VOLUMETRICHE_ORIGINALI_DI_PARTENZACODICE, ZZ_STATO_GEOMETRIAID, ABBINATO_A_SCHEDA, geometria)"

		if wkb != None:
			query.prepare( insertStr + " VALUES ( %s, ?, ?, '0', ST_GeomFromWKB(?, ?) )" % IDGeometria )
			query.addBindValue( codice if codice != None else QVariant() )
			query.addBindValue( stato if stato != None else self.VALORE_NON_INSERITO )
			query.addBindValue( wkb )
			query.addBindValue( srid )

		elif codice != None:
			query.prepare( insertStr + " SELECT %s, CODICE, ?, '0', geometria FROM GEOMETRIE_UNITA_VOLUMETRICHE_ORIGINALI_DI_PARTENZA WHERE CODICE = ?" % IDGeometria )
			query.addBindValue( stato if stato != None else self.VALORE_NON_INSERITO )
			query.addBindValue( codice )

		else:
			raise Exception( "AutomagicallyUpdater._insertGeometria() chiamata senza i dovuti parametri" )

		# memorizza la geometria
		if not query.exec_():
			self._onQueryError( query.lastQuery(), query.lastError().text(), self )
			return

		ROWID = query.lastInsertId().toString()	# restituisce ROWID

		# recupera il valore della pk
		insertQuery = query.lastQuery()
		query.prepare( "SELECT ID_UV_NEW FROM GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE WHERE ROWID = ?" )
		query.addBindValue( ROWID )
		if not query.exec_() or not query.next():
			self._onQueryError( query.lastQuery(), query.lastError().text(), self )
			return
		ID = query.value(0).toString()
		if self.DEBUG:
			print ">>>", insertQuery.toUtf8(), ">>> pk =", ID, ">>> ROWID =", ROWID

		return ID
Example #48
0
    def _deleteValue(self,
                     table,
                     name2valueDict=None,
                     filterStr=None,
                     filterParams=None):
        query = ConnectionManager.getNewQuery(
            AutomagicallyUpdater.EDIT_CONN_TYPE)
        if query == None:
            return False

        if name2valueDict == None:
            name2valueDict = {}

        whereClauses = QStringList()
        bindValues = []
        for name, value in name2valueDict.iteritems():
            if value == None and QString(name).startsWith("ZZ"):
                value = self.VALORE_NON_INSERITO
            elif isinstance(value, (buffer, QByteArray)):
                bindValues.append(value)
                value = '?'
            else:
                value = self._getDBStrValue(value)

            if value != None:
                whereClauses << "%s = %s" % (name, value)
            else:
                whereClauses << "%s IS %s" % (name, value)

        if filterStr != None:
            whereClauses << "%s" % filterStr
            if filterParams != None:
                bindValues.extend(filterParams)

        whereStr = ''
        if whereClauses.count() > 0:
            whereStr = " WHERE " + whereClauses.join(" AND ")
        query.prepare("DELETE FROM " + table + whereStr)
        for v in bindValues:
            query.addBindValue(QVariant(v) if v != None else QVariant())

        # elimina
        if not query.exec_():
            self._onQueryError(query.lastQuery(),
                               query.lastError().text(), self)
            return False
        if self.DEBUG:
            print ">>>", query.lastQuery().toUtf8()
        return True
Example #49
0
	def startPlugin(self):
		if not self.setDBConnection():
			return False

		AutomagicallyUpdater._reset()

		from DlgSceltaRilevatore import DlgSceltaRilevatore
		if not DlgSceltaRilevatore().exec_():
			if not self.startedYet:
				ConnectionManager.closeConnection()
			return False

		self.startedYet = True

		# try to restore position from stored main window state
		if not self.iface.mainWindow().restoreDockWidget(self):
			self.iface.mainWindow().addDockWidget(Qt.LeftDockWidgetArea, self)
		# force show even if it was restored as hidden
		self.show()
		self.activateWindow()
		self.raise_()
		QApplication.processEvents( QEventLoop.ExcludeUserInputEvents )

		return True
Example #50
0
	def _updateValue(self, name2valueDict, table, pk, ID, filterStr=None, filterParams=None):
		query = ConnectionManager.getNewQuery( AutomagicallyUpdater.EDIT_CONN_TYPE )
		if query == None:
			return

		if name2valueDict == None or len(name2valueDict) <= 0:
			return ID

		assignments = QStringList()
		bindValues = []
		for name, value in name2valueDict.iteritems():
			if value == None and QString(name).startsWith( "ZZ" ):
				value = self.VALORE_NON_INSERITO
			elif isinstance(value, (buffer, QByteArray)):
				bindValues.append( value )
				value = '?'
			else:
				value = self._getDBStrValue(value)

			assignments << "%s = %s" % (name, value)

		whereClauses = QStringList()
		if pk != None:
			whereClauses << pk + " = ?"
			bindValues.append( ID )

		if filterStr != None:
			whereClauses << "%s" % filterStr
			if filterParams != None:
				bindValues.extend( filterParams )

		whereStr = ''
		if whereClauses.count() > 0:
			whereStr = " WHERE " + whereClauses.join(" AND ")

		# aggiorna la riga
		query.prepare( "UPDATE " + table + " SET " + assignments.join(", ") + whereStr )
		for v in bindValues:
			query.addBindValue( QVariant(v) if v != None else QVariant() )

		if not query.exec_():
			self._onQueryError( query.lastQuery(), query.lastError().text(), self )
			return
		if self.DEBUG:
			print ">>>", query.lastQuery().toUtf8(), " >>> pk = ", ID
		return ID
Example #51
0
	def _deleteValue(self, table, name2valueDict=None, filterStr=None, filterParams=None):
		query = ConnectionManager.getNewQuery( AutomagicallyUpdater.EDIT_CONN_TYPE )
		if query == None:
			return False

		if name2valueDict == None:
			name2valueDict = {}

		whereClauses = QStringList()
		bindValues = []
		for name, value in name2valueDict.iteritems():
			if value == None and QString(name).startsWith( "ZZ" ):
				value = self.VALORE_NON_INSERITO
			elif isinstance(value, (buffer, QByteArray)):
				bindValues.append( value )
				value = '?'
			else:
				value = self._getDBStrValue(value)

			if value != None:
				whereClauses << "%s = %s" % (name, value)
			else:
				whereClauses << "%s IS %s" % (name, value)

		if filterStr != None:
			whereClauses << "%s" % filterStr
			if filterParams != None:
				bindValues.extend( filterParams )

		whereStr = ''
		if whereClauses.count() > 0:
			whereStr = " WHERE " + whereClauses.join(" AND ")
		query.prepare( "DELETE FROM " + table + whereStr )
		for v in bindValues:
			query.addBindValue( QVariant(v) if v != None else QVariant() )

		# elimina
		if not query.exec_():
			self._onQueryError( query.lastQuery(), query.lastError().text(), self )
			return False
		if self.DEBUG:
			print ">>>", query.lastQuery().toUtf8()
		return True
Example #52
0
	def _insertRilevatore(self, nome, cognome, IDComune):
		query = ConnectionManager.getNewQuery( AutomagicallyUpdater.EDIT_CONN_TYPE )
		if query == None:
			return

		if IDComune == None:
			IDComune = self._getIDComune()

		IDRilevatore = "'" + IDComune + "-'|| CASE WHEN count(ID) > 0 THEN max(SUBSTR(ID, 10))+1 ELSE 1 END"

		# memorizza il rilevatore
		query.prepare( "INSERT INTO RILEVATORE (ID, NOME, COGNOME) SELECT " + IDRilevatore + ", ?, ? FROM RILEVATORE WHERE ID LIKE '" + IDComune + "%'" )
		query.addBindValue( QString(nome).toUpper() )
		query.addBindValue( QString(cognome).toUpper() )

		if not query.exec_():
			self._onQueryError( query.lastQuery(), query.lastError().text(), self )
			return
		return query.lastInsertId().toString()
Example #53
0
	def _updateGeometria(self, ID, wkb, srid=-1):
		if ID == None:
			return
        
		query = ConnectionManager.getNewQuery( AutomagicallyUpdater.EDIT_CONN_TYPE )
		if query == None:
			return

		query.prepare( "UPDATE GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE SET geometria = ST_GeomFromWKB(?, ?) WHERE ID_UV_NEW = ?" )
		query.addBindValue( wkb )
		query.addBindValue( srid )
		query.addBindValue( ID )

		if not query.exec_():
			self._onQueryError( query.lastQuery(), query.lastError().text(), self )
			return
		if self.DEBUG:
			print ">>>", query.lastQuery().toUtf8(), ">>> pk =", ID

		return ID 
Example #54
0
class Models(object):
    def __init__(self):
        self.cm = ConnectionManager()
        self.es = Elasticsearch()
        self.builder = Builder()
        self.connection = self.cm.get_connection()

    def save_to_mysql(self, sql):
        cursor = self.connection.cursor()
        cursor.execute(sql)
        return cursor

    def save_to_elastic_search(self, index, doc_type, body):
        self.es.index(index=index, doc_type=doc_type, body=body)

    def get_from_es(self, index, doc_type, body):
        return self.es.search(index=index, doc_type=doc_type, body=body)

    def get_exact_from_es(self, field, term):
        return self.builder.constant_score().filter().term(field, term).build()
Example #55
0
def Initialize(port, functionMap={}, asyncHandler = None):
    global __executors, __connMan, __parser, __p, __initialized, __ready
    
    __executors = { 'busy' : (lambda x: Response('busy'), False),
                      'ready' : (__isReady, False),
                      'alive' : (lambda x: Response('alive', True), False) }

    for m in functionMap:
        if isinstance(functionMap[m], types.FunctionType):
            __executors[m] = (functionMap[m], False)
        elif isinstance(functionMap[m], tuple):
            __executors[m] = functionMap[m]
        else:
            print 'Element in function map is not a function nor a tuple: ' + repr(functionMap[m])
    
    __connMan = ConnectionManager(port)
    __parser = CommandParser(asyncHandler)
    
    __p = threading.Thread(target=__MainThread)
    __p.daemon = True
    
    __initialized = True
Example #56
0
    def _insertRilevatore(self, nome, cognome, IDComune):
        query = ConnectionManager.getNewQuery(
            AutomagicallyUpdater.EDIT_CONN_TYPE)
        if query == None:
            return

        if IDComune == None:
            IDComune = self._getIDComune()

        IDRilevatore = "'" + IDComune + "-'|| CASE WHEN count(ID) > 0 THEN max(SUBSTR(ID, 10))+1 ELSE 1 END"

        # memorizza il rilevatore
        query.prepare("INSERT INTO RILEVATORE (ID, NOME, COGNOME) SELECT " +
                      IDRilevatore + ", ?, ? FROM RILEVATORE WHERE ID LIKE '" +
                      IDComune + "%'")
        query.addBindValue(QString(nome).toUpper())
        query.addBindValue(QString(cognome).toUpper())

        if not query.exec_():
            self._onQueryError(query.lastQuery(),
                               query.lastError().text(), self)
            return
        return query.lastInsertId().toString()
Example #57
0
    def _updateGeometria(self, ID, wkb, srid=-1):
        if ID == None:
            return

        query = ConnectionManager.getNewQuery(
            AutomagicallyUpdater.EDIT_CONN_TYPE)
        if query == None:
            return

        query.prepare(
            "UPDATE GEOMETRIE_RILEVATE_NUOVE_O_MODIFICATE SET geometria = ST_GeomFromWKB(?, ?) WHERE ID_UV_NEW = ?"
        )
        query.addBindValue(wkb)
        query.addBindValue(srid)
        query.addBindValue(ID)

        if not query.exec_():
            self._onQueryError(query.lastQuery(),
                               query.lastError().text(), self)
            return
        if self.DEBUG:
            print ">>>", query.lastQuery().toUtf8(), ">>> pk =", ID

        return ID
Example #58
0
class ServerCore:
	def __init__(self, my_port=50082, core_node_host=None,
					core_node_port=None):
		self.server_state = STATE_INIT
		print("initializing server")
		self.my_ip = self.__get_myip()
		print('Server IP address is set to ... ', self.my_ip)
		self.my_port = my_port
		self.cm = ConnectionManager(self.my_ip, self.my_port)
		self.core_node_host = core_node_host
		self.core_node_port = core_node_port

	def start(self):
		self.server_state = STATE_STANDBY
		self.cm.start()

	def join_network(self):
		if self.central_host is not None:
			self.server_state = STATE_CONNECTED_TO_NETWORK
			self.cm.join_network(self.core_node_host, self.core_node_port)
		else :
			print('This server is running as Genesis Core Node ...')


	def shutdown(self):
		self.server_state = STATE_SHUTTING_DOWN
		print('shutdown server')
		self.cm.connection_close()

	def get_my_current_state(self):
		return self.server_state

	def __get_muip(self):
		s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
		s.connect(('8.8.8.8',80))
		return s.getsockname()[0]
Example #59
0
class AppChat(QtGui.QMainWindow, t.Ui_MainWindow):
    def __init__(self, parent=None, ccutils=None):
        super(AppChat, self).__init__(parent)
        self.ccutils = ccutils
        self.comm = None
        self.messages = []
        self.setupUi(self)
        self.login_dialog = QtGui.QDialog()
        self.diag_ui = Ui_Dialog()
        self.diag_ui.setupUi(self.login_dialog)
        self.diag_ui.pushButton.clicked.connect(self.login)
        self.diag_ui.cartaoAuth.clicked.connect(self.ccChoose)
        self.sendButton.clicked.connect(self.sendMsg)
        self.listWidget.itemDoubleClicked.connect(self.connect_to_user)
        self.msgBox.installEventFilter(self)
        self.actionRSA_WITH_AES_128.triggered.connect(
            self.change_client_clientRSA)
        self.actionECDHE_WITH_AES_128.triggered.connect(
            self.change_client_clientDH)

        self.cipher_suite = None
        if ccutils is None:
            self.diag_ui.cartaoAuth.setDisabled(True)

        accept = self.login_dialog.exec_()
        if accept == 0:
            quit()
        if not self.comm.s_connect(cipher_suite=self.cipher_suite):
            self.show_error("ERRO a ligar ao servidor")
            quit()
        self.comm.get_user_lists()

    def login(self):
        QtGui.QApplication.setOverrideCursor(
            QtGui.QCursor(QtCore.Qt.WaitCursor))
        address = str(self.diag_ui.address.text())
        port = str(self.diag_ui.port.text())
        username = str(self.diag_ui.userName.text())
        if not self.diag_ui.cartaoAuth.isChecked() and not username:
            QtGui.QApplication.restoreOverrideCursor()
            return
        if not address or not port:
            QtGui.QApplication.restoreOverrideCursor()
            return
        if not ConnectionManager.is_ip_address(address) or not self.valid_port(
                port):
            QtGui.QApplication.restoreOverrideCursor()
            return
        if self.diag_ui.cartaoAuth.isChecked():
            user = SuperUser(ccutils=self.ccutils)
        else:
            user = SuperUser(username)
        try:
            self.comm = ConnectionManager(address, port, self, user)
        except ConnectionManagerError:
            QtGui.QApplication.restoreOverrideCursor()
            self.show_error("Connection ERROR")
            return
        else:
            self.connect(self.comm, self.comm.signal, self.updateChat)
            self.connect(self.comm, self.comm.list_signal, self.list_users)
            self.connect(self.comm, self.comm.error_signal, self.show_error)
            self.connect(self.comm, self.comm.change_list,
                         self.change_listitem)
            self.connect(self.comm, self.comm.append_msg_id, self.append_id)
            self.connect(self.comm, self.comm.append_self_msg,
                         self.append_self_msg)
            if self.diag_ui.radioButton.isChecked():
                self.cipher_suite = 1
            else:
                self.cipher_suite = 2
            QtGui.QApplication.restoreOverrideCursor()
            return self.login_dialog.accept()

    def change_client_clientRSA(self):
        if self.actionECDHE_WITH_AES_128.isChecked():
            self.actionECDHE_WITH_AES_128.toggle()

    def change_client_clientDH(self):
        if self.actionRSA_WITH_AES_128.isChecked():
            self.actionRSA_WITH_AES_128.toggle()

    def sendMsg(self):
        text = self.msgBox.toPlainText()
        if not text or text == "\n":
            return
        self.comm.send_client_comm(text)
        self.msgBox.clear()

    def list_users(self, user_list):
        self.listWidget.clear()
        for user in user_list:
            if user['id'] == self.comm.user.id:
                continue
            item = UserListItem(user['name'], user['id'])
            self.listWidget.addItem(item)

    def ccChoose(self):
        if self.diag_ui.cartaoAuth.isChecked():
            self.diag_ui.userName.setDisabled(True)
        else:
            self.diag_ui.userName.setDisabled(False)

    def append_self_msg(self, msg, id):
        if msg == QtCore.QString.fromLatin1("/top", len("/top")):
            self.messages.append(["<p><img src=\"a.png\"/></p>", id, False])
            self.textBrowser.append("<p style=\"color:red\">(eu)> " +
                                    "<p><img src=\"a.png\"/></p>" + "</p>")
        else:
            self.messages.append([msg, id, False])
            self.textBrowser.append("<span><p style=\"color:red\">(eu)> " +
                                    msg + "</p><span>")

    def append_id(self, id, recieved):
        self.textBrowser.clear()
        for i in self.messages:
            if i[2] is None:
                self.textBrowser.append(
                    "<span><p>" + i[1] + "> " +
                    QtCore.QString.fromLatin1(i[0], len(i[0])) + "</p></span>")
            else:
                if i[1] == id:
                    i[2] = True
                if i[2]:
                    self.textBrowser.append(
                        "<span><p style=\"color:green\">(eu)> " +
                        QtCore.QString.fromLatin1(i[0], len(i[0])) +
                        "</p><span>")
                elif not i[2]:
                    self.textBrowser.append(
                        "<span><p style=\"color:red\">(eu)> " +
                        QtCore.QString.fromLatin1(i[0], len(i[0])) +
                        "</p><span>")
        return

    def change_listitem(self, uid):
        for i in xrange(self.listWidget.count()):
            item = self.listWidget.item(i)
            if item.user_id == uid:
                if item.num == 0:
                    new_text = item.user_name + " (new messages)"
                    item.setText(new_text)
                    item.num += 1
                else:
                    new_text = item.user_name + " (" + str(item.num) + ")"
                    item.setText(new_text)
                    item.num += 1
                item.setTextColor(QtGui.QColor(_fromUtf8("red")))

    def connect_to_user(self, item):
        self.messages = []
        self.textBrowser.clear()
        self.textBrowser.setPlainText("Connecting to " + item.user_name)
        if self.actionRSA_WITH_AES_128.isChecked():
            self.comm.start_client_connect(item.user_id, cipher_suite=1)
        elif self.actionECDHE_WITH_AES_128.isChecked():
            self.comm.start_client_connect(item.user_id, cipher_suite=2)
        else:
            self.comm.start_client_connect(item.user_id, cipher_suite=1)
        item.setText(item.user_name)
        item.num = 0
        item.setTextColor(QtGui.QColor(_fromUtf8("black")))
        self.setWindowTitle("I am " + QtCore.QString.fromLatin1(
            self.comm.user.name, len(self.comm.user.name)) + ", talking to " +
                            item.user_name)

    def updateChat(self, text):
        if repr(text) == repr('/\x00t\x00o\x00p\x00'):
            self.messages.append([
                "<p><img src=\"a.png\"/></p>",
                self.comm.peers[self.comm.peer_connected].name, None
            ])
            self.textBrowser.append(
                self.comm.peers[self.comm.peer_connected].name +
                "> <p><img src=\"a.png\"/></p>")
        else:
            self.messages.append(
                [text, self.comm.peers[self.comm.peer_connected].name, None])
            self.textBrowser.append(
                "<span><p>" + self.comm.peers[self.comm.peer_connected].name +
                "> " + QtCore.QString.fromLatin1(text, len(text)) +
                "</p></span>")

    def show_error(self, error):
        errorDiag = QtGui.QMessageBox()
        errorDiag.setIcon(QtGui.QMessageBox.Critical)
        errorDiag.setText(error)
        errorDiag.setWindowTitle("Error")
        errorDiag.setStandardButtons(QtGui.QMessageBox.Ok)
        errorDiag.exec_()

    def eventFilter(self, obj, event):
        if event.type() == QtCore.QEvent.KeyPress and obj == self.msgBox:
            if event.key() == QtCore.Qt.Key_Return:
                self.sendMsg()
                return True
        return QtGui.QMainWindow.eventFilter(self, obj, event)

    @staticmethod
    def valid_port(s):
        try:
            p = int(s)
            if 0 < p <= 65535:
                return True
            else:
                return False
        except ValueError:
            return False