Warning: session_start(): open(/var/lib/php/sessions/sess_s857324j0bvv2u3ut5v82gfnmg, 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
// not synchronized
sclass WebThoughtSpace extends OptionalConcept {
S globalID;
new Webs webs;
new L openQuestions;
transient Map websByID;
transient MultiMap index;
class Webs extends NotifyingList {
*() { super(new L); }
*(L l) { super(l); }
public synchronized bool add(Web web) {
synchronized(this) {
if (!list.add(web)) false;
}
if (index != null)
ai_addWebToIndex(index, web);
if (websByID != null)
websByID.put(web.globalID, web);
WebThoughtSpace.change();
true;
}
void change() {
index = null;
websByID = null;
WebThoughtSpace.change();
}
public synchronized L subList(int i, int j) {
ret new Webs(list.subList(i, j));
}
}
*() {}
*(Web... webs) {
addAll(this.webs, webs);
}
void addWeb(Web web) { webs.add(web); }
WebNode indexedNode(S query) { ret first(indexedNodes(query)); }
L indexedNodes(S query) {
if (index == null)
index = ai_indexWebs(webs);
ret index.get(query);
}
}