//8 bytes for prediction, 12 for treeID, split_variable, split_criteria_length //however many bytes for split_criteria + 4 bytes for indicating if left,right,additional_info are null, 16 possible bytes for additional_info and 12*num_obs bytes for indices, weights int calculateBufferSize(hpdRFnode* tree) { int total = 3*sizeof(double) + 4*sizeof(int); total += tree->split_criteria_length*sizeof(double); if(tree->additional_info) total += 5*sizeof(int)+ tree->additional_info->num_obs*(sizeof(double) + sizeof(int)); if(tree->left) total += calculateBufferSize(tree->left); if(tree->right) total += calculateBufferSize(tree->right); return total; }
InstancedSponge::InstancedSponge(unsigned recursion, QList<string>& attributes) { bufferCount = 1; makeSponge(recursion, {0, 0, 0}, 1.0f); setMesh(MeshLoader::load(attributes, "cube.obj")); calculateBufferSize(); setCastShadows(false); }
bool MeasurementThread::initAcquisitionCard () { float RevLevel = (float)CURRENTREVNUM; cbDeclareRevision(&RevLevel); cbErrHandling (PRINTALL, DONTSTOP); // calculate maximum buffer size and allocate it long DATA_BUF_SIZE = 0; for (int i = 0; i < fList.size(); i++) { long s = calculateBufferSize(i); if (s > DATA_BUF_SIZE) DATA_BUF_SIZE = s; } _data = cbWinBufAlloc (DATA_BUF_SIZE); if (_data == 0) { bool response = createSweepErrorMsg(0, 0, "Cannot allocate memory"); return response; } // setup channels for (int i = 0; i < cInfo.size(); ++i) { _ChanArray[i] = cInfo.value(i).ChannelNumber; _ChanTypeArray[i] = ANALOG; _GainArray[i] = Global::vMaxToGain(cInfo.value(i).Units); } return true; }
ImuAdis16448::ImuAdis16448(SensorId::SensorId sensor_id, IpConnection::WeakPtr config_connection): Imu(sensor_id, SensorSettings(sensor_id, SensorType::SensorType::IMU_ADIS16448,calculateBufferSize(), ImuAdis16448Defaults::NUM_OF_MSGS_IN_PACKAGE, ImuAdis16448Defaults::USE_CONST_PACKAGE_SIZE, ImuAdis16448Defaults::CALIBRATION_SIZE), config_connection) { }
NfcTag MifareUltralight::read(byte * uid, unsigned int uidLength) { if (isUnformatted()) { Serial.println(F("WARNING: Tag is not formatted.")); return NfcTag(uid, uidLength, NFC_FORUM_TAG_TYPE_2); } readCapabilityContainer(); // meta info for tag findNdefMessage(); calculateBufferSize(); if (messageLength == 0) { // data is 0x44 0x03 0x00 0xFE NdefMessage message = NdefMessage(); message.addEmptyRecord(); return NfcTag(uid, uidLength, NFC_FORUM_TAG_TYPE_2, message); } boolean success; uint8_t page; uint8_t index = 0; byte buffer[bufferSize]; for (page = ULTRALIGHT_DATA_START_PAGE; page < ULTRALIGHT_MAX_PAGE; page++) { // read the data success = nfc->mifareultralight_ReadPage(page, &buffer[index]); if (success) { #ifdef MIFARE_ULTRALIGHT_DEBUG Serial.print(F("Page ")); Serial.print(page); Serial.print(" "); nfc->PrintHexChar(&buffer[index], ULTRALIGHT_PAGE_SIZE); #endif } else { Serial.print(F("Read failed ")); Serial.println(page); // TODO error handling messageLength = 0; break; } if (index >= (messageLength + ndefStartIndex)) { break; } index += ULTRALIGHT_PAGE_SIZE; } NdefMessage ndefMessage = NdefMessage(&buffer[ndefStartIndex], messageLength); return NfcTag(uid, uidLength, NFC_FORUM_TAG_TYPE_2, ndefMessage); }
OsStatus OsConfigDb::storeToEncryptedFile(const char *filename) { OsStatus retval = OS_SUCCESS; // store to buffer size_t buffLen = calculateBufferSize(); char *buff = new char[buffLen]; storeToBuffer(buff); buffLen = strlen(buff); OsEncryption e; retval = getEncryption()->encrypt(this, &e, buff, buffLen); if (retval == OS_SUCCESS) { retval = storeBufferToFile(filename, (const char *)e.getResults(), e.getResultsLen()); } return retval; }
bool MeasurementThread::measureStep(int ns, int fi) { // static char buf [1000] = {0}; //qDebug() << "MeasurementStep: ns = " << ns << ", fi = " << fi; if (fList.size() > 1 || ns == 0) { QString strFreq = QString ("FREQ %1\n").arg(fList[fi]); viPrintf (vi, strFreq.toAscii().data()); // allocate buffer } long DATA_BUFFER_SIZE = calculateBufferSize(fi); int e_code; e_code = cbALoadQueue (BOARD_NUM, _ChanArray, _GainArray, NUM_CHANNELS); if (e_code != 0) { bool response = createSweepErrorMsg(ns, fi, "Error in cbLoadQueue()"); cbWinBufFree(_data); return response; } long actualSamplingRate = sRList[fi]; // if (fList.size() > 1 || ns == 0) { // viPrintf(vi, (ViString)"FREQ?\n"); // /* Read results */ // viScanf (vi, (ViString)"%t", &buf); // } //qDebug() << "Starting Scan. Requested fs = " << actualSamplingRate; int startTime = LoggerTime::timer(); e_code = cbAInScan (BOARD_NUM, 0, 15, DATA_BUFFER_SIZE, &actualSamplingRate, _GainArray[0], _data, CONVERTDATA + DMAIO); int endTime = LoggerTime::timer(); //qDebug() << "Ending Scan. Actual fs = " << actualSamplingRate; if (e_code != 0) { bool response = createSweepErrorMsg(ns, fi, "Error in cbInScan()"); cbWinBufFree(_data); return response; } ImpedanceMeasurement m = iCal.processData((WORD*)_data, DATA_BUFFER_SIZE, fList[fi], actualSamplingRate); //qDebug() << "Finished Impedance Measurement"; m.t = (startTime + endTime)/2; pMLst->append(m); //qDebug() << "Appended Impedance Measurement"; return true; }
void* grep(void* param) { Allparams p=*(Allparams*)param; char* filenamePtr=p.filenamePtr; const char* target=p.target; int *fd=p.fd; int *fd2=p.fd2; //perror("thread geldi\n"); int konum[2]={-1,-1}; int flag; int i,counter=0,currentLineNumber=1,currentColumnNumber=1,widthOfTarget=-1; int bufferSize; FILE* outputFilePtr; FILE* inputFilePtr; char* buffer; #ifdef DEBUG fprintf(stderr,"pid:%d parentpid:%d\n",getpid(),getppid()); #endif widthOfTarget=strlen(target); bufferSize=calculateBufferSize(filenamePtr); buffer=(char*)malloc(sizeof(char)*(bufferSize+3)); outputFilePtr=fopen(OUTPUT_FILE_NAME,"a"); inputFilePtr=fopen(filenamePtr,"r"); if(inputFilePtr==NULL) { fprintf(stderr,"Dosya acilamadi:%s\n",filenamePtr); exit(0); } for(i=0;i<bufferSize;++i) { fscanf(inputFilePtr,"%c",&buffer[i]); } fprintf(outputFilePtr,"\nFilePath:%s Target:%s\n\n",filenamePtr,target); for(i=0;i<bufferSize;++i) { /*Her eslesme icin konum verileri pipe ile yukariya yollanir*/ if(strncmp(target,&buffer[i],widthOfTarget)==0) { konum[0]=currentLineNumber; konum[1]=currentColumnNumber; write(fd[1],konum,sizeof(int)*2); read(fd2[0],&flag,sizeof(int)); fprintf(outputFilePtr,"%d.Occurance line: %d column: %d\n",counter+1,currentLineNumber,currentColumnNumber); ++counter; } if(buffer[i]=='\n') { ++currentLineNumber; currentColumnNumber=1; } else ++currentColumnNumber; } konum[0]=-1; konum[1]=-1; write(fd[1],konum,sizeof(int)*2); if(counter==0) { fprintf(outputFilePtr,"No content found!\n"); } fprintf(outputFilePtr,"_____________________________________________\n"); free(buffer); fclose(inputFilePtr); fclose(outputFilePtr); }
FileDialogImpl::FileDialogImpl( const std::string& title, FileDialog::Action action, const std::vector<FileDialog::Filter>& filters, std::size_t selectedFilter ) : m_fileDialogStruct(new OPENFILENAME()), m_action(action) { std::wstring wideTitle = stringToWide(title); ZeroMemory(m_fileDialogStruct, sizeof(*m_fileDialogStruct)); m_fileDialogStruct->lStructSize = sizeof(*m_fileDialogStruct); //Some strange WinAPI init... m_fileDialogStruct->hwndOwner = nullptr; m_fileDialogStruct->lpstrDefExt = nullptr; m_fileDialogStruct->lpstrFile = new TCHAR[MAX_PATH]; m_fileDialogStruct->lpstrFile[0] = '\0'; m_fileDialogStruct->nMaxFile = MAX_PATH; //Init the filters if(filters.size() > 0) { //Calculate the needed buffer size std::size_t filterBufferSize = calculateBufferSize(filters); //Construct the filters string TCHAR* filtersStr = (TCHAR*)malloc(filterBufferSize * sizeof(wchar_t)); TCHAR* currentPos = filtersStr; for(auto filterIt = filters.cbegin(); filterIt != filters.cend(); ++filterIt) { wmemcpy(currentPos, stringToWide(filterIt->name).c_str(), stringToWide(filterIt->name).size()); currentPos += stringToWide(filterIt->name).size(); wmemcpy(currentPos, L"\0", 1); currentPos += 1; for(auto patternIt = filterIt->patterns.cbegin(); patternIt != filterIt->patterns.cend(); ++patternIt) { wmemcpy(currentPos, stringToWide(*patternIt).c_str(), stringToWide(*patternIt).size()); currentPos += stringToWide(*patternIt).size(); wmemcpy(currentPos, L";", 1); currentPos += 1; } wmemcpy(filterIt->patterns.size() > 0 ? (currentPos - 1) : currentPos, L"\0", 1); if(filterIt->patterns.size() == 0) currentPos += 1; } wmemcpy(currentPos, L"\0", 1); m_fileDialogStruct->lpstrFilter = filtersStr; } else { m_fileDialogStruct->lpstrFilter = nullptr; } m_fileDialogStruct->nFilterIndex = selectedFilter + 1; m_fileDialogStruct->lpstrInitialDir = nullptr; m_fileDialogStruct->lpstrTitle = wideTitle.c_str(); //The window title m_fileDialogStruct->Flags = m_action == FileDialog::Open ? OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST : 0; }