Esempio n. 1
0
int main(int argc, char *argv[])
{
    field_t **field;
    field = importField();
    solvingSudoku(field);
    outputField(field);
    freeField(field);
    return 0;
}
Esempio n. 2
0
int
initializeGame(tGame * game)
{
    int error = 0;

    /* Inicializar Ai */
    game->ai.lockWay = FALSE;
    game->ai.lockTarget = FALSE;
    game->ai.minAlive = 1;
    game->undos = 0;

    if ((error = initializePlayer(&(game->user), &(game->theme)))!=0)
    {
        if (error)
        {
            switch(error)
            {
            case STATUS_ARMY:
                freeField((game->user.enemyField), game->theme.rows);
                freeField((game->user.defenseField), game->theme.rows);
                break;
            case DEFENSE_FIELD:
                freeField((game->user.enemyField), game->theme.rows);
                break;
            case ENEMY_FIELD:
                break;
            }
            return NO_MEMORY;
        }
    }
    if ((error = initializePlayer(&(game->machine), &(game->theme)))!=0)
    {
        if (error)
        {
            switch(error)
            {
            case STATUS_ARMY:
                freeField((game->machine.enemyField), game->theme.rows);
                freeField((game->machine.defenseField), game->theme.rows);
                break;
            case DEFENSE_FIELD:
                freeField((game->machine.enemyField), game->theme.rows);
                break;
            case ENEMY_FIELD:
                break;
            }
            freeField((game->user.enemyField), game->theme.rows);
            freeField((game->user.defenseField), game->theme.rows);
            freeStatusArmy(&(game->user.statusArmy), &(game->theme));
            return NO_MEMORY;
        }
    }
    return error;
}
/**
 * Free field information
 */
void
freeField(struct FileField_4C *field) {
	if (field->name != NULL)
		pfree(field->name);
	if (field->pathInSchema != NULL)
		pfree(field->pathInSchema);
	if (field->num_children > 0){
		for (int i = 0; i < field->num_children; i++) {
			freeField(&(field->children[i]));
		}
		pfree(field->children);
	}
}
Esempio n. 4
0
void cleanUpGame()
{
    if(!player()->gameStarted) return;

    resetBtnAll();
    cleanUpDraw();
    txtFreeGameCharSet();
    freeField(&pf);
    gameState=GAMESTATEINIT;
    player()->gameStarted=0;

    //Free memory used for levelInfo
    freeLevelInfo( &pf.levelInfo );
}
/**
 * Free parquet metadata
 */
void freeParquetMetadata(ParquetMetadata parquetMetadata) {
	/* pfree field information*/
	for (int i = 0; i < parquetMetadata->fieldCount; i++) {
		freeField(&(parquetMetadata->pfield[i]));
	}
	pfree(parquetMetadata->pfield);

	/* pfree hawqschemastr*/
	if (parquetMetadata->hawqschemastr != NULL)
		pfree(parquetMetadata->hawqschemastr);

	if(parquetMetadata->currentBlockMD != NULL)
	{
		freeRowGroupInfo(parquetMetadata->currentBlockMD);
	}

	if (parquetMetadata->estimateChunkSizes != NULL)
	{
		pfree(parquetMetadata->estimateChunkSizes);
	}
	pfree(parquetMetadata);
}
Esempio n. 6
0
void editorCleanUp()
{

  resetBtn(C_UP);
  resetBtn(C_DOWN);
  resetBtn(C_LEFT);
  resetBtn(C_RIGHT);
  resetBtn(C_BTNX);
  resetBtn(C_BTNB);

  //Free memory used for levelInfo
  freeLevelInfo( &pf.levelInfo );
  //Free board and graphics here
  cleanUpDraw();
  changed=0;
  freeField(&pf);

  //Free graphics
  SDL_FreeSurface(selBrickBG);

  SDL_FreeSurface(saveBtnBG);
  free(saveBtnSprite);
}
Esempio n. 7
0
main (int argc, char *argv[]){
  register  int i;
  int       nfiles,shuffled;
  Field     *hfld, *fout;
  FileList  f;
  FILE     *fp;
  char      fname[BUFSIZ], tmpname[BUFSIZ];//, syscall[BUFSIZ];

  char* syscall = new char[ BUFSIZ * 10 ];

  parse_util_args(argc = generic_args (argc, argv, &f), argv, &f);

#ifdef DEBUG
  debug_out = stdout;
#endif

  nfiles = option("Nfiles");
  if(!nfiles){
    fprintf(stderr,"Must specify number of files with -p option\n");
    exit(1);
  }

  hfld = (Field *)calloc(nfiles,sizeof(Field));

  if(option("CONCATENATEDFILE")){
    /* open input file */

      sprintf(fname,"%s",f.in.name);
      sprintf(tmpname,"%s.tot.hdr",fname);
      if((fp = fopen(tmpname,"r")) == (FILE *) NULL){
  fprintf(stderr,"unable to open the input file -- %s",tmpname);
  // exit(1);
      }

      else{
        nfiles=0;
  while(readHeader (fp, hfld+nfiles, &shuffled))
    nfiles++;
  fclose(fp);
      }
  }

  else{


    /* determine file ending (i.e. .chk or .fld ) */
    /* determine input files name by checking it's existance */

    sprintf(fname,"%s",f.in.name);
    sprintf(tmpname,"%s.hdr.0",fname);

    if((fp = fopen(tmpname,"r")) == (FILE *) NULL){
      sprintf(fname,"%s.fld",f.in.name);
      sprintf(tmpname,"%s.hdr.0",fname);
      if((fp = fopen(tmpname,"r")) == (FILE *) NULL){
        fprintf(stderr,"%s: unable to open the input file -- "
        "%s.hdr.0 or  %s.fld.hdr.0 \n",prog,f.in.name,f.in.name);
      //      exit(1);
      }
    }

    fclose(fp);


    /* read in all field Header files */
    for(i = 0; i < nfiles; ++i){
      /* open input files */
      sprintf(tmpname,"%s.hdr.%d",fname,i);
      if((fp = fopen(tmpname,"r")) == (FILE *) NULL)
  fprintf(stderr,"unable to open the input file -- %s",tmpname);
      //exit(1);
      else{
  readHeader (fp, hfld+i, &shuffled);
        //printf(" readHeader file No. %d - done \n",i);
      fclose(fp);
      }

    }
  }

  fout = sortHeaders(hfld,nfiles);
  pllinfo.nprocs = 2;
  pllinfo.nloop  = fout->nel;
  pllinfo.eloop  = fout->emap;
  writeHeader(f.out.fp,fout);
  //printf("write Header file done \n");

  pllinfo.nprocs = 1;

  for(i = 0; i < nfiles; ++i)
    freeField(hfld+i);

  /* make a system call to cat the dat files onto the output file */
  if(f.out.name){ /* write info to file */
    if(option("CONCATENATEDFILE")){
      sprintf(syscall,"cat %s %s.tot.dat > %s.tmp",f.out.name,fname,f.out.name);
    }
    else{
      sprintf(syscall,"cat %s %s.dat.0 ",f.out.name,fname);

      for(i = 1; i < nfiles; ++i){
  if((hfld+i != ((Field* ) NULL)))
    sprintf(syscall,"%s %s.dat.%d ",syscall,fname, i);
      }

      sprintf(syscall,"%s > %s.tmp",syscall,f.out.name);
    }
    fprintf(stdout,"system call: %s\n",syscall);
    system(syscall);

    sprintf(syscall,"mv %s.tmp %s",f.out.name,f.out.name);
    fprintf(stdout,"system call: %s\n",syscall);
    system(syscall);
  }
  else{ /*  cat to stdout */
    if(option("CONCATENATEDFILE")){
      sprintf(syscall,"cat %s.tot.dat",fname);
    }
    else{
      sprintf(syscall,"cat %s.dat.0 ",fname);
      for(i = 1; i < nfiles; ++i){
  sprintf(syscall,"%s %s.dat.%d ",syscall,fname,i);
      }
    }
    system(syscall);
  }
  delete[] syscall;
  return 0;
}
Esempio n. 8
0
gmi_model* MeshAdaptPUMIDrvr::createSphereInBox(double* boxDim,double*sphereCenter, double radius)
{
  sphereRadius = radius;
  boxLength = boxDim[0];
  boxWidth = boxDim[1];
  boxHeight = boxDim[2];
  xyz_offset[0] = sphereCenter[0];
  xyz_offset[1] = sphereCenter[1];
  xyz_offset[2] = sphereCenter[2];
  
  lion_set_verbosity(1);

  //create the analytic model 
  gmi_model* model = gmi_make_analytic();
  
  //add the sphere
 
  makeSphere(model);
  
  //add the box
  makeBox(model);

  //apf::writeVtkFiles("initialInitial",m);
  setParameterization(model,m);
  m->verify();

  //apf::Field* size_initial = apf::createLagrangeField(m,"size_initial",apf::SCALAR,1);
  size_iso = apf::createLagrangeField(m,"proteus_size",apf::SCALAR,1);
  apf::MeshIterator* it = m->begin(0);
  apf::MeshEntity* ent;
  while( (ent = m->iterate(it)) )
  {
    apf::Vector3 pt;
    m->getPoint(ent,0,pt);
    if(sqrt( (pt[0]-xyz_offset[0])*(pt[0]-xyz_offset[0])+ (pt[1]-xyz_offset[1])*(pt[1]-xyz_offset[1]) + (pt[2]-xyz_offset[2])*(pt[2]-xyz_offset[2])) < sphereRadius*1.5)
      apf::setScalar(size_iso,ent,0,hmin);
    else
      apf::setScalar(size_iso,ent,0,hmax);
  }
  m->end(it);

  gradeMesh();
   

  ma::Input* in = ma::configure(m,size_iso);
  in->maximumIterations = 10;
  in->shouldSnap = true;
  in->shouldTransferParametric = true;
  in->shouldFixShape = true;
  in->debugFolder="./debug_fine";
  ma::adaptVerbose(in,false);
  m->verify();
  
  //apf::writeVtkFiles("initialAdapt",m);
  freeField(size_iso);

  size_iso = apf::createLagrangeField(m,"proteus_size",apf::SCALAR,1);
  it = m->begin(0);
  while( (ent = m->iterate(it)) )
  {
    apf::Vector3 pt;
    m->getPoint(ent,0,pt);
    if(sqrt( (pt[0]-xyz_offset[0])*(pt[0]-xyz_offset[0])+ (pt[1]-xyz_offset[1])*(pt[1]-xyz_offset[1]) + (pt[2]-xyz_offset[2])*(pt[2]-xyz_offset[2])) < sphereRadius*1.5)
      apf::setScalar(size_iso,ent,0,hmin);
    else
      apf::setScalar(size_iso,ent,0,hmax);
  }
  m->end(it);

  gradeMesh();
   
  in = ma::configure(m,size_iso);
  in->maximumIterations = 10;
  in->shouldSnap = true;
  in->shouldTransferParametric = true;
  in->shouldFixShape = true;
  in->debugFolder="./debug_fine";
  ma::adaptVerbose(in,false);
  m->verify();
  
  //apf::writeVtkFiles("initialAdapt2",m);
  freeField(size_iso);

  return model;
}
Esempio n. 9
0
int main(void)
{
	struct pollfd sfd[3];
	const long timeout=500; //connection timeout in seconds

	struct timespec ts_timeout;

	int size;

	field *pmessage;

	fldformat *frm;

	isomessage smessage;

	GOOGLE_PROTOBUF_VERIFY_VERSION;

	frm=loadNetFormat();

	if(!frm)
	{
		printf("Error: Can't load format\n");
		return 1;
	}

	printf("Message format loaded\n");

	sfd[2].fd=tcpinit();

	if(sfd[2].fd==-1)
	{
		printf("Error: Unable to start TCP connection\n");
		freeFormat(frm);
		return 1;
	}

	sfd[0].fd=ipcopen((char *)"visa");

	if(sfd[0].fd==-1)
	{
		printf("Error: Unable to connect to switch\n");
		close(sfd[2].fd);
		freeFormat(frm);
		return 1;
	}

	if (signal(SIGINT, catch_sigint) == SIG_ERR)
		printf("Warning: unable to set the signal handler\n");

	sfd[0].events=POLLIN;
	sfd[1].events=POLLIN;

	while (1)
	{
		printf("Waiting for a connection...\n");

		errno=0;
		sfd[1].fd=tcpconnect(sfd[2].fd);
		if(sfd[1].fd==-1)
		{
			if(sigint_caught)
			{
				printf("onnection aborted^\n");
				break;
			}

			printf("Connection error: %s\n", strerror(errno));
			sleep(1);
			continue;
		}

		printf("Connected.\n");

		while (1)
		{
			printf("Waiting for a message...\n");

			ts_timeout.tv_sec=timeout;
			ts_timeout.tv_nsec=0;
			errno=0;

			size=ppoll(sfd, 2, &ts_timeout, NULL);

			//printf("poll: %d: %hd, %hd: %s\n", size, sfd[0].revents, sfd[1].revents, strerror(errno));

			if(size==-1)
			{
				if(sigint_caught)
				{
					printf("losing connection^\n");
					break;
				}

				printf("Error: poll (%hd, %hd): %s\n", sfd[0].revents, sfd[1].revents, strerror(errno));
				if(sfd[1].revents)
					break;
				else
				{
					usleep(100000);
					continue;
				}
			}
			else if(size==0)
			{
				printf("Error: Connection is inactive, closing it %ld, %ld\n", ts_timeout.tv_sec, ts_timeout. tv_nsec);
				break;
			}

			if(sfd[1].revents & POLLIN)
			{
				printf("Receiving message from net\n");

				size=tcprecvmsg(sfd[1].fd, &pmessage, frm);

				if(size==-1)
				{
					printf("Closing connection\n");
					break;
				}
				else if(size==0)
					continue;

				print_message(pmessage);

				if(isNetMgmt(pmessage))
				{
					if(isNetRequest(pmessage))
					{
						if(!processNetMgmt(pmessage))
						{
							printf("Error: Unable to process Network Management request. Message dropped.\n");
							freeField(pmessage);
							continue;
						}

						print_message(pmessage);

						size=tcpsendmsg(sfd[1].fd, pmessage);

						if(size==-1)
						{
							printf("Closing connection\n");
							freeField(pmessage);
							break;
						}
						else if(size==0)
						{
							freeField(pmessage);
							continue;
						}

						printf("Network Management Message sent (%d bytes)\n", size);
					}

					freeField(pmessage);
					continue;
				}

				if(translateNetToSwitch(&smessage, pmessage)!=0)
				{
					printf("Error: Unable to translate the message to format-independent representation.\n");

					if(isNetRequest(pmessage))
					{
						if(!declineNetMsg(pmessage))
						{
							printf("Error: Unable to decline the request. Message dropped.\n");
							freeField(pmessage);
							continue;
						}

						print_message(pmessage);

						size=tcpsendmsg(sfd[1].fd, pmessage);

						if(size==-1)
						{
							printf("Closing connection\n");
							freeField(pmessage);
							break;
						}
						else if(size==0)
						{
							freeField(pmessage);
							continue;
						}

						printf("Decline message sent (%d bytes)\n", size);
					}

					freeField(pmessage);
					continue;
				}

				printf("Converted message:\n");
				smessage.PrintDebugString();

				size=ipcsendmsg(sfd[0].fd, &smessage, (char *)"switch");

				if(size<=0)
				{
					printf("Error: Unable to send the message to switch\n");

					if(isNetRequest(pmessage))
					{
						if(!declineNetMsg(pmessage))
						{
							printf("Error: Unable to decline the request. Message dropped.\n");
							freeField(pmessage);
							continue;
						}

						print_message(pmessage);

						size=tcpsendmsg(sfd[1].fd, pmessage);

						if(size==-1)
						{
							printf("Closing connection\n");
							freeField(pmessage);
							break;
						}
						else if(size==0)
						{
							freeField(pmessage);
							continue;
						}

						printf("Decline message sent (%d bytes)\n", size);
					}

					freeField(pmessage);
					continue;
				}

				freeField(pmessage);

				printf("Message sent, size is %d bytes.\n", size);
			}

			if(sfd[0].revents & POLLIN)
			{
				printf("Receiving message from switch\n");

				if(ipcrecvmsg(sfd[0].fd, &smessage)<0)
					continue;

				printf("\nOutgoingMessage:\n");
		                smessage.PrintDebugString();

				pmessage=translateSwitchToNet(&smessage, frm);

				if(!pmessage)
				{
					printf("Error: Unable to translate the message from format-independent representation.\n");

					if(isRequest(&smessage))
					{
						if(!declineMsg(&smessage))
						{
							printf("Error: Unable to decline the request. Message dropped.\n");
							continue;
						}

						smessage.PrintDebugString();

						size=ipcsendmsg(sfd[0].fd, &smessage, (char *)"switch");

						if(size<=0)
						{
							printf("Error: Unable to return the declined message to switch. Message dropped.\n");
							continue;
						}

						printf("Decline message sent (%d bytes)\n", size);

					}
					continue;
				}

				print_message(pmessage);

				size=tcpsendmsg(sfd[1].fd, pmessage);

				freeField(pmessage);

				if(size==-1)
				{
					printf("Closing connection\n");

					if(isRequest(&smessage))
					{
						if(!declineMsg(&smessage))
						{
							printf("Error: Unable to decline the request. Message dropped.\n");
							continue;
						}

						smessage.PrintDebugString();

						size=ipcsendmsg(sfd[0].fd, &smessage, (char *)"switch");

						if(size<=0)
						{
							printf("Error: Unable to return the declined message to switch. Message dropped.\n");
							continue;
						}

						printf("Decline message sent (%d bytes)\n", size);

					}
					break;
				}
				else if(size==0)
				{
					if(isRequest(&smessage))
					{
						if(!declineMsg(&smessage))
						{
							printf("Error: Unable to decline the request. Message dropped.\n");
							continue;
						}

						smessage.PrintDebugString();

						size=ipcsendmsg(sfd[0].fd, &smessage, (char *)"switch");

						if(size<=0)
						{
							printf("Error: Unable to return the declined message to switch. Message dropped.\n");
							continue;
						}

						printf("Decline message sent (%d bytes)\n", size);
					}
					continue;
				}

				printf("Message sent (%d bytes)\n", size);
			}

		}

		tcpclose(sfd[1].fd);

		printf("Disconnected.\n");

		if(sigint_caught)
			break;
	}

	tcpclose(sfd[2].fd);
	ipcclose(sfd[0].fd);
	freeFormat(frm);
	google::protobuf::ShutdownProtobufLibrary();
	
	return 0;
}