Warning: session_start(): open(/var/lib/php/sessions/sess_01nfhc3i1ajj99bfpars4evtd2, 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
sclass ActualThoughtSpace extends AbstractThoughtSpace {
new TripleIndex index;
int limit; // 0 = no limit
Map blocked = newWeakHashMap();
Set blockedA;
*() {}
*(int *limit) {}
*(AbstractThoughtSpace parent) { super(parent); }
// existence of triple has already been checked
public GlobalID postTriple(T3 t) {
if (limitReached()) fail("Thought space limit reached");
TripleWeb w = tripleWeb(t);
index.addTriple(w);
ret w.globalID();
}
bool limitReached() {
ret limit > 0 && size() >= limit;
}
L> get(S s) {
ret ai_triplesToTripleRefs_lazyList(s, getTriples(s));
}
L getTriples(S s) {
L l = filterNonBlockedTriples(parent.getTriples(s));
ret combineLists(l, index.getTriples(ai_shortenForIndex(s)));
}
L filterNonBlockedTriples(L l) {
if (empty(blockedA)) ret l;
L out = emptyListWithCapacity(l);
for (TripleWeb w : l)
if (!isBlocked(w))
out.add(w);
ret out;
}
bool isBlocked(TripleWeb t) {
ret contains(blockedA, t.a);
}
int size() { ret index.size(); }
}