ProfileManager::~ProfileManager() { // If the profiles have been altered then write out the profile file if (Changed) SaveCache(); ClearCache(); }
void ResetRecords(void) { cdwKeyRecord = 0; SaveCache(&chKeyRecord); cdwSysRecord = 0; SaveCache(&chSysRecord); cdwDigRecord = 0; SaveCache(&chDigRecord); cdwImpRecord = 0; SaveCache(&chImpRecord); cdwModRecord = 0; SaveCache(&chModRecord); cdwPh2Record = 0; SaveCache(&chPh2Record); cdwAuxRecord = 0; SaveCache(&chAuxRecord); ResetRecordsDsbl(); }
void ResetFactors(void) { uchar c; for (c=0; c<bCANALS; c++) { mpdbTransEng[c] = 1; mpdbPulseHou[c] = 500; mpdbCount[c] = 0; mpdbLosse[c] = 0; } for (c=0; c<bCANALS; c++) { mpdbPulseMnt[c] = mpdbPulseHou[c]; mpdbLevel[c] = 1; mpdbTransCnt[c] = 1; } SaveCache(&chTransEng); SaveCache(&chTransCnt); SaveCache(&chPulseHou); SaveCache(&chPulseMnt); SaveCache(&chCount); SaveCache(&chLosse); SaveCache(&chLevel); }
void NewBoundsAbs32(ulong dwAbs) { LoadCurrDigital(ibDig); uchar c; for (c=0; c<bCANALS; c++) { LoadPrevDigital(c); if (CompareCurrPrevLines(ibDig, c) == true) { mpboStartCan[c] = true; mpcdwStartAbs32Can[c] = dwAbs; } } SaveCache(&chStartCan); SaveCache(&chStartAbs32Can); }
bool AddSysRecord(event ev) { if (IsRecordDisabled(ev)) return true; uint i = OpenRecord(SYS_RECORD, cdwSysRecord); reCurr.ti = *GetCurrTimeDate(); reCurr.cdwRecord = cdwSysRecord++; SaveCache(&chSysRecord); reCurr.ev = ev; switch (ev) { // case EVE_CONTACTS3_START: // case EVE_CONTACTS3_COUNTER: memcpy(&reCurr.mpbBuff+0, &cbContact, sizeof(uchar)); // memcpy(&reCurr.mpbBuff+1, &cbContactMax, sizeof(uchar)); break; // // case EVE_VALUE3_DOWN: memcpy(&reCurr.mpbBuff+0, &reContactDown, sizeof(float)); break; // case EVE_VALUE3_UP: memcpy(&reCurr.mpbBuff+0, &reContactUp, sizeof(float)); break; // case EVE_VALUE3_COUNTER: memcpy(&reCurr.mpbBuff+0, &cbContactMax, sizeof(uchar)); break; // // case EVE_CONTACTS3_0_ON: memcpy(&reCurr.mpbBuff+0, &reContactRec, sizeof(float)); // memcpy(&reCurr.mpbBuff+4, &reContactUp, sizeof(float)); break; // // case EVE_CONTACTS3_0_OFF: memcpy(&reCurr.mpbBuff+0, &reContactRec, sizeof(float)); // memcpy(&reCurr.mpbBuff+4, &reContactDown, sizeof(float)); break; // // case EVE_CONTACTSMODE: // case EVE_CONTACTS1: // case EVE_CONTACTS2: memcpy(&reCurr.mpbBuff+0, &bContactRec, sizeof(uchar)); break; case EVE_PREVNEXTTIME2: Put(0, (uchar *) &tiCurr, sizeof(time)); break; case EVE_EDIT_DIGITAL1: case EVE_EDIT_DIGITAL2: PutChar(0, ibRecordCan); Put(1, (uchar *) &mpdiDigital[ibRecordCan], sizeof(digital)); break; case EVE_EDIT_KEY10: case EVE_EDIT_KEY20: PutChar(0, ibRecordCan); Put(1, (uchar *) &mpphKeys[ibRecordCan].szLine+0, 7); break; case EVE_EDIT_KEY11: case EVE_EDIT_KEY21: Put(0, (uchar *) &mpphKeys[ibRecordCan].szLine+7, 6); break; case EVE_EDIT_ADDRESS10: case EVE_EDIT_ADDRESS11: PutChar(0, ibRecordCan); Put(1, (uchar *) &mpdwAddress1[ibRecordCan], sizeof(ulong)); break; case EVE_EDIT_ADDRESS20: case EVE_EDIT_ADDRESS21: PutChar(0, ibRecordCan); Put(1, (uchar *) &mpdwAddress2[ibRecordCan], sizeof(ulong)); break; } CloseRecord(SYS_RECORD, i); return CloseOut(); }
void key_SetRelaxsTariff(void) { if (bKey == bKEY_ENTER) { if (enKeyboard == KBD_ENTER) { if (boRelaxsFlag == true) { enKeyboard = KBD_POSTENTER; Clear(); LoadSlide(pszRelaxs); ShowChar(ibRelaxsTariff+1); } else BlockProgram(bSET_RELAXS_FLAG); } else if (enKeyboard == KBD_POSTINPUT1) { enKeyboard = KBD_POSTENTER; ibX = GetCharLo(6,8); if ((ibX > 0) && (ibX <= bTARIFFS)) { ibRelaxsTariff = ibX-1; SaveCache(&chRelaxsTariff); ShowChar(ibRelaxsTariff+1); } else { enKeyboard = KBD_INPUT1; LongBeep(); ShowLo(szMaskRelaxs); } } else Beep(); } else if (bKey < 10) { if ((enGlobal != GLB_WORK) && (enKeyboard == KBD_POSTENTER)) { enKeyboard = KBD_INPUT1; ShowLo(szMaskRelaxs); } if ((enKeyboard == KBD_INPUT1) || (enKeyboard == KBD_POSTINPUT1)) { enKeyboard = KBD_POSTINPUT1; ShiftLo(6,8); } } else Beep(); }
void MakeParamsDiv(void) { uint p; for (p=0; p<wPARAMS; p++) { MakeParamDiv(p); } SaveCache(&flParamsDiv); }
void ResetRecordsDsbl(void) { memset(&mpfRecordDsbl, 0, sizeof(mpfRecordDsbl)); mpfRecordDsbl[EVE_PROFILEOPEN] = true; mpfRecordDsbl[EVE_PROFILE_OK2] = true; mpfRecordDsbl[EVE_PROFILE2] = true; SaveCache(&chRecordDsbl); }
void MakeLimits(void) { uchar c; for (c=0; c<bCANALS; c++) { if (mpcwStopCan[c] < wHOURS-1) mpcwStopCan[c]++; } SaveCache(&chStopCan); }
void ResetExtended4T(bool fFull) { if (fFull) { fExt4TFlag = false; SaveCache(&chExt4TFlag); bExt4TMonths = 4; SaveCache(&chExt4TMonths); } memset(&mpCntMonCan4T, 0, sizeof(mpCntMonCan4T)); uchar m; for (m=0; m<bMONTHS; m++) { SaveExt4TValues(m); } }
void key_GetPassword(void) { if (bKey == bKEY_ENTER) { if (enKeyboard == KBD_ENTER) { enKeyboard = KBD_INPUT2; ShowHi(szPassword); ShowLo(szMaskPass); ClearPassTwo(); ibX = 3; } else if (enKeyboard == KBD_INPUT2) { if ((memcmp(mpbPassOne, mpbPassTwo, 10) == 0) || SuperUser()) { enKeyboard = KBD_BEGIN; OK(); boSetPassword = true; SaveCache(&chSetPassword); enGlobal = GLB_REPROGRAM; Setting(); // AddSysRecord(EVE_PASSWORD); } else { enKeyboard = KBD_ENTER; LongBeep(); Error(); } } } else if (bKey < 10) { if (enKeyboard == KBD_INPUT2) { if (ibX < 13) { mpbPassTwo[ibX-3] = bKey; szLo[ibX++] = '*'; } } } else Beep(); }
void InitFlow(void) { fFlow = 0; cbFlowDelay = 0; LoadCache(&chFlowPortFrom); if ((ibFlowPortFrom != 0) && (ibFlowPortFrom != 1)) { ibFlowPortFrom = 0; SaveCache(&chFlowPortFrom); } LoadCache(&chMaxFlowDelay); LoadCache(&chFlowPortTo); if ((ibFlowPortTo != 2+1) && (ibFlowPortTo != 3+1)) { ibFlowPortTo = 2+1; SaveCache(&chFlowPortTo); } }
GPU_Vulkan::~GPU_Vulkan() { SaveCache(shaderCachePath_); // Note: We save the cache in DeviceLost DestroyDeviceObjects(); framebufferManagerVulkan_->DestroyAllFBOs(); vulkan2D_.Shutdown(); depalShaderCache_.Clear(); drawEngine_.DeviceLost(); delete textureCacheVulkan_; delete pipelineManager_; delete shaderManagerVulkan_; delete framebufferManagerVulkan_; }
// устанавливает настройки по умолчанию void key_Debug(void) { if (enKeyboard == KBD_ENTER) { enKeyboard = KBD_BEGIN; ShowHi(szDebug); Clear(); boSetTime = true; SaveCache(&chSetTime); boSetDate = true; SaveCache(&chSetDate); boSetGroups = true; SaveCache(&chSetGroups); ClearPassOne(); boSetPassword = true; SaveCache(&chSetPassword); // TODO key_Debug // сбрасываем настройки по умолчанию для переменных zoAlt,zoKey // ResetZones(); // сбрасываем настройки по умолчанию для ResetTariffs(); // устанавливаем признаки используемых каналов и групп MakeUsedNodes(); OK(); // if (boDTREnable == true) DTROff_All(); } else Beep(); }
void ResetSpeeds(void) { uchar p; mppoPorts[0].enStream = STR_SLAVEESC; mppoPorts[1].enStream = STR_SLAVEESC; mppoPorts[2].enStream = STR_MASTERDIRECT; mppoPorts[3].enStream = STR_MASTERDIRECT; for (p=0; p<bPORTS; p++) { mppoPorts[p].ibBaud = 3; mppoPorts[p].ibParity = 0; SetDefaultDelay(p); mpboLocalDisable[p] = false; SetCorrectLimit(p); } SavePorts(); SaveLocalDisable(); SaveMajorInDelay(); SaveMinorInDelay(); SaveCache(&chCorrectLimit); for (p=0; p<bPORTS; p++) mpwOutputDelay[p] = 0; SaveCache(&chOutputDelay); for (p=0; p<bPORTS; p++) mpwTxDelay[p] = 0; SaveCache(&chTxDelay); }
void SaveFactors(void) { SaveCache(&chTransEng); SaveCache(&chTransCnt); SaveCache(&chPulseHou); SaveCache(&chPulseMnt); SaveCache(&chCount); SaveCache(&chLosse); SaveCache(&chLevel); }
void NextHouLimitsAux(void) { if (UseBounds()) { uchar c; for (c=0; c<bCANALS; c++) { if (IsLimitsAux(GetDigitalDevice(c))) { mpcwStopAuxCan[c]++; } } SaveCache(&chStopAuxCan); } }
void ResetLimitsAux(uchar ibDig) { LoadCurrDigital(ibDig); uchar c; for (c=0; c<bCANALS; c++) { LoadPrevDigital(c); if (CompareCurrPrevLines(ibDig, c) == true) { mpcwStopAuxCan[c] = 0; } } SaveCache(&chStopAuxCan); }
void NewBoundsRel(uint wRel) { LoadCurrDigital(ibDig); uchar c; for (c=0; c<bCANALS; c++) { LoadPrevDigital(c); if (CompareCurrPrevLines(ibDig, c) == true) { mpcwStartRelCan[c] = wRel; } } SaveCache(&chStartRelCan); }
void MakeExtended3(void) { if (fExt3Flag == true) { ShowHi(szExtended3); Clear(); sprintf(szLo+14,"%2u",ibDig+1); DelayInf(); switch (diCurr.bDevice) { case 1: ReadEventsAllA(); break; case 2: ReadEventsAllB(); break; } mpfEventStart[ibDig] = false; SaveCache(&chEventStart); } }
inline bool RasterTerrain::Load(Path path, FileCache *cache, OperationEnvironment &operation) { if (LoadCache(cache, path)) return true; if (!LoadTerrainOverview(archive.get(), map.GetTileCache(), operation)) return false; map.UpdateProjection(); if (cache != nullptr) SaveCache(*cache, path); return true; }
void key_SetBoolBlocked(cache const *pch, char const *pszMessages[], bool fNonBlocked, uint wProgram) { bool *pboValue = (bool *) pch->pbBuff; if (bKey == bKEY_ENTER) { if (enKeyboard == KBD_ENTER) { if (fNonBlocked) { enKeyboard = KBD_INPUT1; Clear(); LoadSlide(pszMessages); ShowBool(*pboValue); } else { ShowHi(szBlocked); Clear(); sprintf(szLo+1,"программой %u",wProgram); } } else Beep(); } else if (bKey == bKEY_POINT) { if (enGlobal != GLB_WORK) { if ((enKeyboard == KBD_INPUT1) || (enKeyboard == KBD_POSTINPUT1)) { *pboValue = InvertBool(*pboValue); SaveCache(pch); ShowBool(*pboValue); } else Beep(); } else Beep(); } else Beep(); }
void NextMinute3(void) { Realtime1.cdwMinutes3++; DisableImpulses(); PrepareImpulses(); EnableImpulses(); MakeImpulse(); SaveImpHouBuff(); SaveImpDayBuff(); SaveImpMonBuff(); SaveImpAbsBuff(); SaveRealtimeTimes(); // TODO another place SaveCache(&chRealtimeValues); if (boMntParams == true) NextParamsTime(); NextMntCurrent2(); }
void CCache::WorkCache() { if(_failtime && time(NULL) - _failtime < 300) { return; } _failtime = 0; while(_entries.size()) { if(AudioScrobbler->Scrobble(*_entries.front())) { delete _entries.front(); _entries.erase(_entries.begin()); } else { eprintf("%s", "Error scrobbling. Trying again in 5 minutes."); _failtime = time(NULL); AudioScrobbler->Failure(); break; } sleep(1); } SaveCache(); }
bool AddKeyRecord(event ev) { if (IsRecordDisabled(ev)) return true; uint i = OpenRecord(KEY_RECORD, cdwKeyRecord); reCurr.ti = *GetCurrTimeDate(); reCurr.cdwRecord = cdwKeyRecord++; SaveCache(&chKeyRecord); reCurr.ev = ev; switch (ev) { case EVE_GPS_GOODLINK: Put(0, (uchar *) &tiGps, sizeof(time)); break; case EVE_GPS_BADGPS: PutChar(0, bStatusGps); break; case EVE_GPS_GOODGPS_1: Put(0, (uchar *) &tiRecordTime, sizeof(time)); PutChar(6, bGmtGps); break; case EVE_GPS_GOODGPS_2: PutChar(0, bSeasonCurr); PutChar(1, boSeasonGps ? 0xFF : 0x00); break; case EVE_EXT_CORRECT2: case EVE_ESC_K: case EVE_ESC_k: case EVE_INQ_CORRECT1: case EVE_INQ_CORRECT2: case EVE_INQ_CORRECT4: case EVE_PROGRAM_2: Put(0, (uchar *) &tiRecordTime, sizeof(time)); break; // case EVE_SMK_GOODLINK: memcpy(&reCurr.mpbBuff+0, &tiSMK, sizeof(time)); break; // case EVE_SMK_GOODSMK_1: memcpy(&reCurr.mpbBuff+0, &tiAlt, sizeof(time)); break; } CloseRecord(KEY_RECORD, i); return CloseOut(); }
// удаление излома из списка void DelGap(void) { uchar i; // если удаляем не последний излом if (ibX < GetGapSize() - 1) { // сдвигаем последующие изломи вверх for (i=ibX; i<GetGapSize() - 1; i++) { GetGapDate(i + 1); SetGapDate(i); } } // иначе уменьшаем индекс текущего излома else if (ibX != 0) ibX--; // уменьшаем количество изломов if (GetGapSize() != 0) SetGapSize(GetGapSize() - 1); SaveCache(&chGaps); }
void ResetLimits(void) { fUseBounds = true; SaveCache(&chUseBounds); uchar c; for (c=0; c<bCANALS; c++) { mpcwStartRelCan[c] = 0; mpcwStartAbs16Can[c] = 0; mpcdwStartAbs32Can[c] = 0; mpboStartCan[c] = false; mpcwStopCan[c] = wHOURS_62-1; // самый старый получас mpcwStopAuxCan[c] = 0; } SaveCache(&chStartRelCan); SaveCache(&chStartAbs16Can); SaveCache(&chStartAbs32Can); SaveCache(&chStartCan); SaveCache(&chStopCan); SaveCache(&chStopAuxCan); }
void DataFileDB::CacheUpdate() const { static bool first_update=true; static time_t last_update; if(dbtype==DBStringKeys) { // Check if it is too early to update. if(first_update) { ::time(&last_update); first_update=false; return; } time_t now; ::time(&now); if(now-last_update < CACHE_REFRESH_RATE) return; last_update=now; if(status.size()==0) return; // Debug: #ifdef FILEDB_DEBUG // for(size_t i=0; i<status.size(); i++) // cout << " => Age of " << vec[i][0] << " (" << i << "): " << (now - status[i].access) << "s " << (status[i].ondisk ? "disk" : "memory") << endl; #endif int save_count=0; int oldest_index; time_t oldest; // Check the maximum size for resident entries. int overflow=Loaded() - CACHE_MAX_RESIDENT; while(overflow > 0) { oldest_index=Oldest(); if(oldest_index==-1) break; SaveCache(oldest_index); save_count++; overflow--; } // Find and save older entries. for(int count=CACHE_MAX_SINGLE_WRITE; count; count--) { oldest_index=Oldest(); if(oldest_index==-1) break; oldest=status[oldest_index].access; if(now - oldest <= CACHE_MIN_AGE) break; SaveCache(oldest_index); save_count++; } Dump("DataFileDB::CacheUpdate()","cache update of "+ToString(save_count)+" entries"); } else throw Error::NotYetImplemented("DataFileDB::CacheUpdate()"); }
void BuildTable::Init (IAICallback *callback, bool cache) { cb = callback; char cachefn[80]; ReplaceExtension (cb->GetModName (), cachefn, sizeof(cachefn), "modcache"); if (cache) { if (LoadCache (cachefn)) return; } // this is what makes loading times long, because spring will load unit defs only when they're needed. // meaning, GetUnitDefs() will make spring load all the unit defs at once. numDefs = cb->GetNumUnitDefs(); deflist = new UDef[numDefs]; const UnitDef** templist=new const UnitDef*[numDefs]; cb->GetUnitDefList (templist); for (int a=0;a<numDefs;a++) { UDef& d = deflist[a]; d.def = templist[a]; d.cost.energy = d.def->energyCost; d.cost.metal = d.def->metalCost; d.make.energy = d.def->energyMake; d.make.metal = d.def->metalMake; if (d.def->activateWhenBuilt) { // Solars have negative energy upkeep so they can be disabled d.make.energy -= d.def->energyUpkeep; d.make.metal += d.def->makesMetal; d.make.metal -= d.def->metalUpkeep; } d.storage.energy = d.def->energyStorage; d.storage.metal = d.def->metalStorage; d.metalExtractDepth = d.def->extractsMetal; d.buildTime = d.def->buildTime; d.energyUse = d.def->energyUpkeep; d.buildSpeed = d.def->buildSpeed; d.numBuildOptions = d.def->buildOptions.size(); d.flags = 0; if (!d.def->buildOptions.empty ()) d.flags |= CUD_Builder; if (d.def->type == "Building" || d.def->type == "Factory" || d.def->type == "MetalExtractor") d.flags |= CUD_Building; if (d.def->windGenerator) d.flags |= CUD_WindGen; if (d.def->movedata) { d.moveType = d.def->movedata->moveType; d.flags |= CUD_MoveType; } deflist[a].def = templist[a]; deflist[a].name = templist[a]->name; d.weaponDamage = 0.0f; d.weaponRange = 0.0f; for (int b=0;b<d.def->weapons.size();b++) { const WeaponDef* w = d.def->weapons[b].def; if (d.weaponRange < w->range) d.weaponRange = w->range; d.weaponDamage += CalcAverageDamage (&w->damages); } } delete[] templist; table.alloc(numDefs); logPrintf ("Calculating build table for %d build types...\n", numDefs); // convert all string'ed identifiers to id's, which can be used for indexing directly buildby = new std::vector<int>[numDefs]; for (int a=0;a<numDefs;a++) { const UnitDef *def=deflist[a].def; for (map<int,string>::const_iterator i=def->buildOptions.begin();i!=def->buildOptions.end();++i) { const UnitDef *bdef = cb->GetUnitDef (i->second.c_str()); if (bdef) buildby[bdef->id-1].push_back(a); } deflist[a].buildby = &buildby [a]; } for (int a=0;a<numDefs;a++) CalcBuildTable (a, a, 0, ResInfo()); SaveCache (cachefn); /* for (int a=0;a<numDefs;a++) { logPrintf ("%s builds:", deflist[a].name.c_str()); for (int b=0;b<numDefs;b++) { BuildTable::Table::ent& e=table.get(a,b); if (e.id>=0) logPrintf ("%s by building %s (%d), ", deflist[b].name.c_str(), deflist[e.id].name.c_str(), e.depth); } logPrintf ("\n"); }*/ }
void ReadEventsA(uchar ibEvent) { uchar j; ulong dwCurr, dwPrev; ShowEventsA(ibEvent); if (QueryOpenA_Full(25) == 0) { bEventCode = 0; AddImpRecord(EVE_EVENTS_BADLINK); return; } uchar i; for (i=0; i<10; i++) { if (QueryEventA_Full(ibEvent,i,50) == 0) { bEventCode = i+1; AddImpRecord(EVE_EVENTS_BADLINK); return; } InitPop(1); mptiEventAB1[i] = ReadEventA(); mptiEventAB2[i] = ReadEventA(); } switch (ibEvent) { case 1: dwPrev = mpdwEventDevice[ibDig]; break; case 7: dwPrev = mpdwEventPhase1[ibDig]; break; case 8: dwPrev = mpdwEventPhase2[ibDig]; break; case 9: dwPrev = mpdwEventPhase3[ibDig]; break; } dwCurr = 0; bool f = false; for (i=0; i<10; i++) { time ti = mptiEventAB1[i]; if (dwPrev == DateToEventIndex(ti)) f = true; if (dwCurr < DateToEventIndex(ti)) { dwCurr = DateToEventIndex(ti); j = i; } ti = mptiEventAB2[i]; if (dwPrev == DateToEventIndex(ti)) f = true; if (dwCurr < DateToEventIndex(ti)) { dwCurr = DateToEventIndex(ti); j = i; } } if (dwCurr == 0) AddImpRecord(EVE_EVENTS_BADDATA); if ((f == false) && (mpfEventStart[ibDig] == true)) { bEventCode = GetEventCodeA(ibEvent); AddImpRecord(EVE_EVENTS_OMISSION); } for (i=0; i<10; i++) { uchar k = (10 + j + i + 1) % 10; time ti = mptiEventAB1[k]; if (dwPrev < DateToEventIndex(ti)) { tiRecordTime = ti; bEventCode = GetEventCodeA(ibEvent) | 0x80; // внимание ! AddImpRecord(EVE_EVENTS_A); } ti = mptiEventAB2[k]; if (dwPrev < DateToEventIndex(ti)) { tiRecordTime = ti; bEventCode = GetEventCodeA(ibEvent); AddImpRecord(EVE_EVENTS_A); } } switch (ibEvent) { case 1: mpdwEventDevice[ibDig] = dwCurr; SaveCache(&chEventDevice); break; case 7: mpdwEventPhase1[ibDig] = dwCurr; SaveCache(&chEventPhase1); break; case 8: mpdwEventPhase2[ibDig] = dwCurr; SaveCache(&chEventPhase2); break; case 9: mpdwEventPhase3[ibDig] = dwCurr; SaveCache(&chEventPhase3); break; } }