Пример #1
0
int Functionality::searchVectorForTitle(vector<EventStorage> searchVector, string userInput, vector<EventStorage> &tempVector)
{
	unsigned i;
	int searchCount=0;
	istringstream wordExtract(userInput);
	int wordCount=0;	
	string tempString;
	while(wordExtract >> tempString)
		wordCount++;
	string searchData;
	string tempTitle;
	int tempCount;
	for(i=0;i<searchVector.size();i++)
	{
		tempTitle=searchVector[i].getTitle();
		while(tempTitle.size()!=0)
		{
			tempCount=0;
			searchData="\0";
			istringstream titleExtract(tempTitle);
			while(titleExtract >> tempString && tempCount<wordCount)
			{
				tempCount++;
				searchData+=tempString;
				searchData+=" ";
			}
			searchData = searchData.substr(0, searchData.size()-1);
			for(unsigned iterator = 0; iterator < searchData.size(); iterator++)
				searchData[iterator] = tolower(searchData[iterator]);
			if(searchData==userInput)
			{
				searchCount++;
				tempVector.push_back(searchVector[i]);
				break;
			}
			istringstream getFirstWord(tempTitle);
			getFirstWord>>searchData;
			istringstream countTitle(tempTitle);
			tempCount=0;
			while(countTitle>>tempString)
				tempCount++;
			if(tempCount==1)
				tempTitle="\0";
			else
				tempTitle=tempTitle.substr(searchData.size()+1, tempTitle.size()-(searchData.size()+1));
		}
	}
	if(searchCount>0)
		return 1;
	else
		return 0;
}
Foam::wordHashSet Foam::vtkPV3Foam::getSelected
(
    vtkDataArraySelection* select
)
{
    int nElem = select->GetNumberOfArrays();
    wordHashSet selections(2*nElem);

    for (int elemI=0; elemI < nElem; ++elemI)
    {
        if (select->GetArraySetting(elemI))
        {
            selections.insert(getFirstWord(select->GetArrayName(elemI)));
        }
    }

    return selections;
}
Foam::wordHashSet Foam::vtkPV3Foam::getSelected
(
    vtkDataArraySelection* select,
    const partInfo& selector
)
{
    int nElem = select->GetNumberOfArrays();
    wordHashSet selections(2*nElem);

    for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
    {
        if (select->GetArraySetting(elemI))
        {
            selections.insert(getFirstWord(select->GetArrayName(elemI)));
        }
    }

    return selections;
}
Пример #4
0
Foam::wordHashSet Foam::vtkPVblockMesh::getSelected
(
    vtkDataArraySelection* select,
    const arrayRange& range
)
{
    int nElem = select->GetNumberOfArrays();
    wordHashSet selections(2*nElem);

    for (int elemI = range.start(); elemI < range.end(); ++elemI)
    {
        if (select->GetArraySetting(elemI))
        {
            selections.insert(getFirstWord(select->GetArrayName(elemI)));
        }
    }

    return selections;
}
Пример #5
0
int main(){

  char * data = "TagOne: one1\r\nTagTwo: two2\r\nTagThree: three3\r\n\r\n";
  char * tag = "TagTwo";

  printf( "data:\n%s\ntag: %s\n", data, tag );

  char * value = getTagValue( data, tag );
  
  printf( "value: %s\n", value );

  free( value );

  char * firstWord = getFirstWord( data );

  printf( "firstWord: %s\n", firstWord );

  free( firstWord );

  return EXIT_SUCCESS;
}
Foam::word Foam::vtkPV3Foam::getPartName(int partId)
{
    return getFirstWord(reader_->GetPartArrayName(partId));
}
Пример #7
0
int execwrapper(char *cmd){
	// printf("\nIN EXECWRAPPER\n");
	// sleep(1);

	char parameterX[BUFFER];
	char progName[PROGRUNBUFFER];
	char progPath[PROGRUNBUFFER];// useless ... may take a default path parameter
	// in future
	char progPathName[2*PROGRUNBUFFER];
	progPath[0] = '\0';
	progName[0] = '\0';
	parameterX[0] = '\0';

	getFirstWord(cmd,progName,parameterX);

	char *arglist[MAXNUMOFARGUMENTS+1];
	char *pathList[MAXPATHCOUNT];
	for(int i=0;i<MAXPATHCOUNT;i++){
		pathList[i]=(char *)malloc(sizeof(char)*MAXPATHSIZE);
	}
	for(int i=0;i<MAXNUMOFARGUMENTS+1;i++){
		arglist[i] = (char *)malloc(sizeof(char)*MAXARGSIZE);
	}
	int argCount = countChar(parameterX,' ')+1;
	if(argCount>MAXNUMOFARGUMENTS){
		// printf("\nERROR : can not have more than %d arguments\n",MAXNUMOFARGUMENTS);
		return -1;
	}
	lineToWords(parameterX,arglist+1,&argCount,' ');
	copyString(arglist[0],progName);
	argCount++;
	free(arglist[argCount]);
	arglist[argCount]=NULL;
	sprintf(progPathName,"%s%s",progPath,progName);
	// printf("\nPROGPATHNAME = {%s}",progName);
	// printf("\nparameterX = {%s}",parameterX);
	// printf("\nPROGPATHNAME = {%s}",progPathName);
	int success=0;
	// assuming prog is in current directory
	success = execv(progPathName,arglist);
	if(success==-1){
		// if the previous execv is failed
		// then try execv for different path combinations
		// printf("\nEXEC UNSUCCESSFULL !!\n");
		// sleep(1);
		char* pPath;
		pPath = getenv ("PATH");
		int pathCount;
		pathCount = countChar(pPath,':')+1;
		lineToWords(pPath,pathList,&pathCount,':');
		for(int i=0;i<pathCount;i++){
			sprintf(progPathName,"%s/%s",pathList[i],progName);
			success = execv(progPathName,arglist);
		}
		if(success == -1){
			// printf("\nERROR : INVALID COMMAND--{%s}\n",progName);
		}
	}
	for(int i=0;i<argCount;i++){
		free(arglist[i]);
	}
	for(int i=argCount+1;i<MAXNUMOFARGUMENTS+1;i++){
		free(arglist[i]);
	}
	for(int i=0;i<MAXPATHCOUNT;i++){
		free(pathList[i]);
	}
	return success;
}
void Foam::vtkPV3Foam::convertMeshPointSets
(
    vtkMultiBlockDataSet* output
)
{
    if (debug)
    {
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshPointSets" << endl;
        printMemory();
    }

    const selectionInfo& selector = selectInfoPointSets_;
    vtkDataArraySelection* arraySelection = reader_->GetRegionSelection();

    // Create the point sets and add as dataset
    if (selector.size())
    {
        const fvMesh& mesh = *meshPtr_;

        for
        (
            int regionId = selector.start();
            regionId < selector.end();
            ++regionId
        )
        {
            if (!selectedRegions_[regionId])
            {
                continue;
            }

            word selectName = getFirstWord
            (
                arraySelection->GetArrayName(regionId)
            );


            if (debug)
            {
                Info<< "Creating VTK mesh for pointSet: " << selectName
                    << " region index: " << regionId << endl;
            }

            const pointSet pSet(mesh, selectName);

            const label datasetId = GetNumberOfDataSets(output, selector);

            vtkPolyData* vtkmesh = vtkPolyData::New();
            addPointSetMesh
            (
                mesh,
                pSet,
                vtkmesh
            );
            AddToBlock
            (
                output, selector, datasetId, vtkmesh,
                selectName + ":pointSet"
            );
            selectedRegionDatasetIds_[regionId] = datasetId;
            vtkmesh->Delete();
        }
    }

    if (debug)
    {
        Info<< "<end> Foam::vtkPV3Foam::convertMeshPointSets" << endl;
        printMemory();
    }
}
void Foam::vtkPV3Foam::convertMeshCellSets
(
    vtkMultiBlockDataSet* output
)
{
    if (debug)
    {
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshCellSets" << endl;
        printMemory();
    }

    const selectionInfo& selector = selectInfoCellSets_;
    vtkDataArraySelection* arraySelection = reader_->GetRegionSelection();

    // Create the cell sets and add as dataset
    if (selector.size())
    {
        const fvMesh& mesh = *meshPtr_;

        for
        (
            int regionId = selector.start();
            regionId < selector.end();
            ++regionId)
        {
            if (!selectedRegions_[regionId])
            {
                continue;
            }

            word selectName = getFirstWord
            (
                arraySelection->GetArrayName(regionId)
            );

            if (debug)
            {
                Info<< "Creating VTK mesh for cellSet: " << selectName
                    << " region index: " << regionId << endl;
            }

            const cellSet cSet(mesh, selectName);
            fvMeshSubset subsetter
            (
                IOobject
                (
                    "set",
                    mesh.time().constant(),
                    mesh,
                    IOobject::NO_READ,
                    IOobject::NO_WRITE
                ),
                mesh
            );
            subsetter.setLargeCellSubset(cSet);

            const label datasetId = GetNumberOfDataSets(output, selector);

            vtkUnstructuredGrid* vtkmesh = vtkUnstructuredGrid::New();

            addVolumeMesh
            (
                subsetter.subMesh(),
                vtkmesh,
                csetSuperCells_[datasetId]
            );

            // renumber - superCells must contain global cell ids
            inplaceRenumber
            (
                subsetter.cellMap(),
                csetSuperCells_[datasetId]
            );

            AddToBlock
            (
                output, selector, datasetId, vtkmesh,
                selectName + ":cellSet"
            );
            selectedRegionDatasetIds_[regionId] = datasetId;
            vtkmesh->Delete();
        }
    }

    if (debug)
    {
        Info<< "<end> Foam::vtkPV3Foam::convertMeshCellSets" << endl;
        printMemory();
    }
}