Exemple #1
0
client_profilo::client_profilo(users_repository* repo, const std::string& user, QWidget *parent) :
    QWidget(parent), ptr_repository(repo), username_(user){

    riga_inizio_lingue=50;
    riga_inizio_competenze=10;
    riga_inizio_inserimento_lingua=250;
    riga_inizio_esperienze_professionali=400;
    riga_inizio_inserimento_esperienze=850;



    popola();

    // Installazione
    c_controller= new client_controller(ptr_repository);
    edit_controller = new aggiungi_modifica_utenti(ptr_repository);


    std::list<std::string> user_data = c_controller->get_info_utente(username_);

        std::list<std::string>::const_iterator itt=user_data.begin();
        for(;itt!=user_data.end();++itt)
            std::cout<<*itt;

    inizializza(user_data);
    //di default disabilitati, li abilito per la modifica.
    disabilita_tutto();
    //connessioni
    connect(btn_modifica_profilo,SIGNAL(clicked()),this,SLOT(abilita_modifiche()));
    connect(btn_salva_modifiche,SIGNAL(clicked()),this,SLOT(salva_modifiche()));
    connect(btn_aggiungi_competenza,SIGNAL(clicked()),this,SLOT(aggiungi_competenza()));
    connect(btn_aggiungi_lingua,SIGNAL(clicked()),this,SLOT(aggiungi_lingua()));
   //connect(btn_inserisci_esperienza,SIGNAL(clicked()),this,SLOT(aggiungi_esperienza()));
}
Exemple #2
0
main()
{
 strcpy(status.nomefile,"base.idl");
 inizializza();
 setmenuP(0," Files ",1,hh);
 setmenuP(0," Compile ",1,menuto2);
 setmenuP(0," Quit! ",1,esci);
 setmenuS(0,1," Ciao ",1,hh);
 setmenuS(0,1," Addio ",1,gg);
 gwindow(60,60,300,200," Main Win ",12,1,14,3);
 num=status.active_window;
 perc_init();
 for(x=0;x<=37;x++)
 {
  percent(x,37);
 }
 perc_end();
 mouse(1);
 while(kd!=27)
 {
  while((kd=ikey())==0) {}
  controlla(kd);
  x=contr_drives();
  if(x!=-1) {setdisk(x);dato=x;}
 }
 mouse(2);
 nogwin();
 finisci();
 return(0);
}
Exemple #3
0
int main(){
	int k,status,queue;
	pid_t pid;
	queue=msgget(IPC_PRIVATE,IPC_CREAT|0664);
	inizializza();
	
	pid = fork();
	if(pid == 0){
		printf("sono il produttore. Il mio pid e' %d \n",getpid());
		sleep(1);
		produttore(queue,"ciao bello!");
		_exit(0);	
	}
	else {
		pid = fork();
		if(pid == 0){
			printf("sono il figlio consumatore. Il mio pid e' %d",getpid());
			sleep(1);
			consumatore(queue);
			_exit(0);
		}	
	}
	

	for(k=0;k<2;
	distruggi();
}
Exemple #4
0
void main(int argc, char *args){
	int k;

	inizializza();
	
	for(k=0;k<OPERATORS;k++){
		pthread_join(op[k],NULL);
	}

	printf("Agenzia chiusa!\n");
}
Exemple #5
0
int partita()
{
	int gioco=1;
	int m[DIM][DIM],turni=(DIM*DIM-1),giocatore;
	do
	{
		//inizializzo matrice e matrice di controllo
		if (turni==(DIM*DIM-1))
		{
			printf("\n######### TRIS #########\n");
			inizializza(m);
			mostra_aggiornata(m);
			//finchè ho mosse da fare che sono al massimo DIM*DIM
			giocatore=richiestagiocatore();
		}
		else {
			mostra_aggiornata(m);
			printf("\nGiocatore %i tocca a te\n",giocatore);
		}
		int cod,x,y;
		switch (giocatore)
		{
			case 1:mossavivente(m,giocatore);
						 break;
			case 2:f2(m,giocatore);
						 break;
			default:
						 errore();
		}
		turni--;
		giocatore=giocatore%2+1;

		int c=0;
		if (controllatutto(m,giocatore))
		{
			gioco=vittoria(giocatore);
			c++;
		}
		if(!turni)
		{
			gioco=patta();
			c++;
		}
		if (c>=1)
			turni=DIM*DIM;
	}while (gioco==1);
	return 0;
}
Exemple #6
0
int thread_For_Read_Write (int *psocketfd)
{
	int newsocketfd;
	int n, nread, nwrite;
	char bufscrittura[LENVETLETTURA];
	char buflettura[LENVETSCRITTURA];
	int *ptr;
	unsigned int sum;

	newsocketfd=*psocketfd;
	free(psocketfd);
	psocketfd=NULL;

	/* alloco la struttura in cui restituire il risultato */
	ptr=malloc(sizeof(int));
	if(ptr==NULL) {
		perror("malloc failed: ");
		fflush(stderr);
		pthread_exit (NULL);
		return(0);
	}

	sum=inizializza(bufscrittura,LENVETLETTURA);
	printf("inizializza somma vettore %d\n", sum );
	
	/*
		stampavet(bufscrittura,LENVETLETTURA);
		fflush (stdout);
	*/
	
	sum=htonl(sum);
	/* scrittura della somma del vettore */
	nwrite = sizeof(int);
	printf ("Writen()\n");
	fflush (stdout);
	n = Writen (newsocketfd, (char*)&sum, nwrite );
	if (n != nwrite)
	{
		printf ("Writen() sum failed");
		fflush(stdout);
		*ptr=0;
		pthread_exit ( ptr );  /* valore restituito dal thread */
		return (0);
	}
	
	/* lettura */
	nread=LENVETSCRITTURA;
	printf ("Readn() thread\n");
	fflush (stdout);
	n = Readn (newsocketfd, buflettura, nread);

	/*printf("n di read thread %d", n);*/
	if (n != nread)
	{
		printf ("Readn()thread failed \n");
		fflush(stdout);
		*ptr=0;
		pthread_exit ( ptr );  /* valore restituito dal thread */
		return (0);
	}
	
	/* scrittura */
	nwrite = LENVETLETTURA;
	printf ("Writen()\n");
	fflush (stdout);
	n = Writen (newsocketfd, bufscrittura, nwrite );
	if (n != nwrite)
	{
		printf ("Writen() failed \n");
		fflush(stdout);
		*ptr=0;
		pthread_exit ( ptr );  /* valore restituito dal thread */
		return (0);
	}

	/* chiusura */
	printf ("terminazione corretta del pthread\n");
	fflush (stdout);
	*ptr=1;
	pthread_exit ( ptr );  /* valore restituito dal thread */
	return (1);
}
ChangeSubType::ChangeSubType(LinQedInAdmin* admin)
{
    inizializza(admin);
    setUpGUI();
    setWindowTitle( tr("Cambia tipo iscrizione") );
}
Exemple #8
0
int main (int argc, char *argv[])
{

    short int local_port_number;
    int listenfd[2], connectedfd[3], to_close[3], status[3];
	int Vnwritten[3], Vnread[3];
	int socketfd, nreadTCP, nwriteTCP, statusTCP=0;
    struct sockaddr_in Cli;
	int ris, i, nwrite, nread, n;
	int noattesa;

	unsigned int len;
	char minibuf[3][10], minibufclient[10];
	char *bufclient;
	char *bufsend[3], *bufrecv[3];
	fd_set fdR, fdW, temp_fdR, temp_fdW;
	struct timeval tv;
	int myerrno, maxfd;
	int nconnected=0, num;

    if (argc != 2)
    {
		printf ("necessario 1 parametro\n");
		usage ();
		exit (1);
    }
    else
    {
		local_port_number = atoi (argv[1]);
    }

	bufclient=malloc(MAXSIZE);
	if(bufclient==NULL) { perror("malloc failed: "); exit(1);}
	for(i=0;i<3;i++)
	{
		bufsend[i]=malloc(MAXSIZE);
		if(bufsend[i]==NULL) { perror("malloc failed: "); exit(1);}
		bufrecv[i]=calloc(1,MAXSIZE);
		if(bufrecv[i]==NULL) { perror("malloc failed: "); exit(1);}
	}
	init_random();
	for(i=0;i<3;i++)
		inizializza(bufsend[i],MAXSIZE);
	
	if( ! Init_TCP_Session_Module(NULL) )
	{
		printf ("Init_TCP_Session_Module() failed\n");
		fflush(stdout);
		exit(1);
	}

	ris=TCPS_setup_socket_listening( &(listenfd[0]), local_port_number);
	if (!ris)
	{	
		printf ("setup_socket_listening() failed\n");
		exit(1);
	}

	ris=TCP_setup_socket_listening( &(listenfd[1]), local_port_number+1);
	if (!ris)
	{	
		printf ("setup_socket_listening() failed\n");
		exit(1);
	}

	ris= TCP_setup_connection(&socketfd, "127.0.0.1", local_port_number+1);
	if (!ris)  {
		printf ("impossibile connettersi al server: TERMINO!!\n" );
		fflush(stdout);
		exit(1);
	}
#ifdef VERBOSE
	printf("socket TCP client %d\n", socketfd );
	fflush(stdout);
#endif

	FD_ZERO(&fdR);
	FD_ZERO(&fdW);
	FD_SET(listenfd[0],&fdR);
	FD_SET(listenfd[1],&fdR);
	FD_SET(socketfd,&fdW);
	if(socketfd>listenfd[0])	maxfd=socketfd;
	else				maxfd=listenfd[0];
	if(listenfd[1]>maxfd)		maxfd=listenfd[1];

#ifdef VERBOSE
	printf("socket listening: %d %d\n", listenfd[0], listenfd[1] );
	fflush(stdout);
#endif

	noattesa=NUMCICLITRAATTESA;

	do
	{
		if(noattesa==0)
		{
#ifdef VERBOSE
			printf("sleep(1) \n");
			fflush(stdout);
#endif
			sleep(1);
			noattesa=NUMCICLITRAATTESA;
		}
		else
		{
#ifdef VERBOSE
			printf("no sleep() \n");
			fflush(stdout);
#endif
			noattesa--;
		}

		do {
			temp_fdR=fdR;
			temp_fdW=fdW;
			tv.tv_sec=20;
			tv.tv_usec=0;

			/*
			printf("Select ...  ");
			fflush(stdout);
            		*/

			ris=Select(maxfd+1, &temp_fdR, &temp_fdW, NULL, &tv );
			myerrno=errno;

			/*
       		printf(" fine Select\n");
			fflush(stdout);
            		*/

		} while( (ris<0)&&(myerrno==EINTR) );

		if(ris==0)
		{
			printf("Select timeout: repeat\n");
			fflush(stdout);
		}
		else if(ris<0)
		{
			perror("Select() failed: ");
			printf("TERMINO !!!!!\n");
			fflush(stdout);
			exit(1);
		}
		else
		{
			/* ris>0 */

			/* accetto al massimo due "connessioni TCP con Sessione" ed una "normale" */
			for(i=0;i<2;i++)
			{
				if( listenfd[i] >= 0 )
				{
					if( FD_ISSET(listenfd[i], &temp_fdR) )
					{
						len=sizeof(Cli);
						ris=Accept (listenfd[i], (struct sockaddr *) &Cli, &len);
						myerrno=errno;
						if(ris<0)
						{
							if(myerrno!=EINTR)
							{
								printf ("Accept(%d) failed, Err: %d \"%s\"\nTERMINO!!!",
											listenfd[i], myerrno, strerror (myerrno));
								exit (1);
							}
						}
						else
						{
							connectedfd[nconnected]=ris;
							to_close[nconnected]=ris;
							status[nconnected]=0; 
							FD_SET(connectedfd[nconnected],&fdR);
							if(connectedfd[nconnected]>maxfd)	maxfd=connectedfd[nconnected];

							printf("Accettata connessione %d dal socket listening %d\n",
									connectedfd[nconnected], listenfd[i] );

							nconnected++;
							if((nconnected==3)||(i==1))
							{
								FD_CLR(listenfd[i], &temp_fdR);
								FD_CLR(listenfd[i], &fdR);
								/* attenzione qui, a chi deve gestire le riconnessioni */
								printf("Chiuso socket listening %d\n", listenfd[i] );

								Close(listenfd[i]);
								listenfd[i]=-1;
	
							}
		
						}
					}
				}
			}

			/* le connessioni "lato server" */
			for(i=0;i<nconnected;i++)
			{
				if( connectedfd[i] >= 0 )
				{
					if( FD_ISSET(connectedfd[i], &temp_fdR) )
					{
						/* disponibile in lettura */
						ris=AvailableBytes(connectedfd[i],&num);
						if(ris==0)
						{
							printf("AvailableBytes from server %d failed\nTERMINO!!!", connectedfd[i]);
							fflush(stdout);
							exit(1);
						}
						if(num==0)
						{
							/* nessun byte disponibile -> e' stata chiusa la connessione
							 Close(connectedfd[i]);
               				*/
							
							FD_CLR(connectedfd[i], &fdR);
							FD_CLR(connectedfd[i], &fdW);
							printf("Connessione %d Chiusa inaspettatamente\nTERMINO!!!!\n", connectedfd[i]);
							fflush(stdout);
							connectedfd[i]=-1;
							exit(1);
						}
						else
						{
							/* qualcosa da leggere */
							if(status[i]==0)
							{
								/* leggo 10 bytes, in modo bloccante */
								nread=10;
								n = Readn (connectedfd[i], minibuf[i], nread);
								if (n != nread)
								{
									printf ("Readn() failed \nTermino\n");
									fflush(stdout);
									exit(1);
								}
								else
								{
									FD_SET(connectedfd[i],&fdW);
									Vnwritten[i]=0;
									status[i]=1;
									Vnread[i]=0;
#ifdef VERBOSE
									printf("Read %d bytes using %d\n", n, connectedfd[i] );
									fflush(stdout);
#endif
								}
							}
							else
							{
								/* status[i]==1   seconda lettura */
								n = Read (connectedfd[i], bufrecv[i]+(Vnread[i]), MAXSIZE-Vnread[i]>STEPSIZE?STEPSIZE:MAXSIZE-Vnread[i] );
								myerrno=errno;
								if(n<0)
								{
									if(myerrno!=EINTR)
									{
										printf ("Read() failed \nTermino\n");
										fflush(stdout);
										exit(1);
									}
								}
								else
								{
#ifdef VERBOSE
									printf("read %d bytes from connection %d\n", n, connectedfd[i] );
									fflush(stdout);
#endif
									Vnread[i]+=n;

									if(Vnread[i]==MAXSIZE)
									{

										printf("La Connessione %d ha finito correttamente il proprio lavoro\n", connectedfd[i] );
										fflush(stdout);

										FD_CLR(connectedfd[i], &fdR);
										FD_CLR(connectedfd[i], &temp_fdR);
										FD_CLR(connectedfd[i], &fdW);
										FD_CLR(connectedfd[i], &temp_fdW);
										connectedfd[i]=-1;
									}
								}
							}
						}
					}
				}
				if( connectedfd[i] >= 0 )
				{
					if( FD_ISSET(connectedfd[i], &temp_fdW) )
					{
						nwrite=MAXSIZE;
						do {
							n = Send (	connectedfd[i], bufsend[i]+(Vnwritten[i]),
										nwrite-Vnwritten[i]>STEPSIZE?STEPSIZE:nwrite-Vnwritten[i],
										MSG_NOSIGNAL|MSG_DONTWAIT
										);
							myerrno=errno;
						} while ( (n<0)&&(myerrno==EINTR) );
						if ( n < 0 )
						{
							printf ("Send() failed \nTermino\n");
							fflush(stdout);
							exit(1);
						}
						else
						{
#ifdef VERBOSE
							printf("Sent %d bytes using server %d\n", n, connectedfd[i]);
							fflush(stdout);
#endif
							Vnwritten[i]+=n;
							if(Vnwritten[i]==nwrite)
							{
#ifdef VERBOSE
								printf("Una Connessione %d ha finito di inviare\n", connectedfd[i] );
								fflush(stdout);
#endif
								FD_CLR(connectedfd[i], &fdW);
								FD_CLR(connectedfd[i], &temp_fdW);

							}
						}
					}
				}
			}

			if(socketfd>=0)  /* funge da client locale, deve scrivere poi leggere poi scrivere */
			{
				if( FD_ISSET(socketfd, &temp_fdW) )
				{
					if(statusTCP==0)
					{
						nwrite = 10;
#ifdef VERBOSE
						printf ("Writen() %d bytes su TCP client locale %d\n", nwrite, socketfd );
						fflush (stdout);
#endif
						n = Writen (socketfd, minibufclient, nwrite );
						if (n != nwrite)
						{
							printf ("Writen() using %d TCP client failed \nTERMINO\n", socketfd);
							fflush(stdout);
							exit(2);
						}
						/* non devo piu' spedire */
						FD_CLR(socketfd, &fdW);
						FD_CLR(socketfd, &temp_fdW);
						/* devo ricevere */
						FD_SET(socketfd, &fdR);
						nreadTCP=0;

#ifdef VERBOSE
						printf ("fine Writen() %d bytes su TCP client locale %d \n", n, socketfd );
						fflush (stdout);
#endif
					}
					else  /* statusTCP==1 */
					{
						n = Send (socketfd, bufclient+nwriteTCP, MAXSIZE-nwriteTCP, MSG_NOSIGNAL|MSG_DONTWAIT );
						myerrno=errno;
						if ( n < 0 )
						{
							if(myerrno!=EINTR)
							{
								printf ("Send() using %d TCP client failed \nTermino\n",socketfd);
								fflush(stdout);
								exit(1);
							}
						}
						else if ( n == 0 )
						{
							printf ("Send() using %d TCP client failed: Sent 0 bytes: strano\nTermino\n", socketfd);
							fflush(stdout);
							exit(1);
						}
						else /* n>0 */
						{
#ifdef VERBOSE
							printf("Sent %d bytes using %d TCP client\n", n, socketfd );
							fflush(stdout);
#endif
							nwriteTCP+=n;
							if(nwriteTCP==MAXSIZE)
							{
								printf("la Connessione %d TCP client ha finito il proprio lavoro\n", socketfd );
								fflush(stdout);

								FD_CLR(socketfd, &fdR);
								FD_CLR(socketfd, &fdW);
								FD_CLR(socketfd, &temp_fdR);
								FD_CLR(socketfd, &temp_fdW);

							}
						}

					}
				}
			}

			/* la connessione TCP "client" dopo avere spedito vuole ricevere */
			if(socketfd>=0)
			{
				if( FD_ISSET(socketfd, &temp_fdR) )
				{
					/* disponibile in lettura */
					ris=AvailableBytes(socketfd,&num);
					if(ris==0)
					{
						printf("AvailableBytes from TCP client %d failed\nTERMINO!!!", socketfd );
						fflush(stdout);
						exit(1);
					}
					if(num==0)
					{
						/* nessun byte disponibile -> e' stata chiusa la connessione */
						Close(socketfd);
						FD_CLR(socketfd, &fdR);
						FD_CLR(socketfd, &fdW);
						FD_CLR(socketfd, &temp_fdR);
						FD_CLR(socketfd, &temp_fdW);
						printf("Connessione socketfd %d Chiusa troppo presto\nTERMINO!!!", socketfd );
						fflush(stdout);
						socketfd=-1;
						exit(1);
					}
					else
					{
						/* qualcosa da leggere, lettura non bloccante */
						do {
							n = Read (socketfd, bufclient+nreadTCP, MAXSIZE-nreadTCP );
							myerrno=errno;
						} while ( (n<0)&&(myerrno==EINTR) );
						if ( n < 0 )
						{
							printf ("Read() failed \nTermino\n");
							fflush(stdout);
							exit(1);
						}
						else
						{
							nreadTCP+=n;

#ifdef VERBOSE
							printf("read %d bytes from connection TCP client %d\n", n, socketfd );
							fflush(stdout);
#endif
							if(nreadTCP==MAXSIZE)
							{
#ifdef VERBOSE
								printf("La Connessione TCP client ha finito di leggere\n");
								fflush(stdout);
#endif
								/* abilito anche la scrittura */
								FD_SET(socketfd, &fdW);
								statusTCP=1;
								nwriteTCP=0;
								FD_CLR(socketfd, &temp_fdR);
								FD_CLR(socketfd, &temp_fdW);

							}
						}
					}
				}
			}



		}  /* fine ris>0  */

	}  while( not_empty( maxfd, &fdR,&fdW) );
	
#ifdef VERBOSE
    printf ("Fine main\n");
	fflush(stdout);
#endif
    /* printf ("sleep 10 secs\n");
	fflush(stdout);
	sleep(10);
    */

    printf ("Close varie\n");
	fflush(stdout);

	if( Close(socketfd) != 0 )
		perror("Close failed\n");
	for(i=0;i<nconnected;i++)
		if(Close(to_close[i]) != 0 )
			perror("Close failed\n");

    printf ("call to CloseWait_TCP_Session_Module ...\n");
    fflush(stdout);
    n=CloseWait_TCP_Session_Module(NULL,NULL);
    switch(n) {
        case -1: printf ("CloseWait_TCP_Session_Module returns %d: error\n", n); break;
        case 0:  printf ("CloseWait_TCP_Session_Module returns %d: timeout expired\n", n); break;
        case 1:  printf ("CloseWait_TCP_Session_Module returns %d: ok\n", n); break;
        default: printf ("CloseWait_TCP_Session_Module returns %d: unknown error code\n", n); break;
    }
    fflush(stdout);

	/* controllo quel che ho ricevuto */
	for(i=0;i<3;i++)
	{
		unsigned int j;

		for(j=0;j<MAXSIZE;j++) 
			if(bufrecv[i][j] != bufsend[i][j])
			{
			printf ("\033[33;35;1m bufrecv[%d][%d] %d DIVERSO da bufsend[%d][%d] %d  : errore in trasmissione dati\n \033[0m ",
					i,j, bufrecv[i][j], i,j, bufsend[i][j]  );
			fflush(stdout);
			return (0);
			}
	}
    return (0);
}