Warning: session_start(): open(/var/lib/php/sessions/sess_a8mr6dpls619r08u46cj76icv6, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
// TODO: run dbBot()
sclass ConceptsLoadedOnDemand {
new Map loaded; // key = just the case ID. value can be null in case of error
L onCaseLoaded; // L
Lock lock = lock();
Concepts get(S caseID, O extraInfo) { ret conceptsForCase(caseID, extraInfo); }
Concepts getIfLoaded(S caseID) {
lock lock;
ret loaded.get(unnull(caseID));
}
// caseID may be empty, then you get the program's main DB
Concepts conceptsForCase(S caseID, O extraInfo) {
lock lock;
//assertNempty(+caseID);
caseID = unnull(caseID);
if (loaded.containsKey(caseID))
ret assertNotNull("Concepts load error", loaded.get(caseID));
S id = combineWithSlash(getDBProgramID(), caseID);
print("Loading concepts for case " + id);
Concepts cc = new Concepts(id);
cc.persist();
loaded.put(caseID, cc);
pcallFAll(onCaseLoaded, caseID, extraInfo, cc);
ret cc;
}
void cleanMeUp {
cleanUpAndClear(loaded);
}
void onCaseLoaded(VF3 f) {
onCaseLoaded = listCreateAndAdd(onCaseLoaded, f);
}
}