Warning: session_start(): open(/var/lib/php/sessions/sess_o8vj9ah17n4kicua33133cf6ov, 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
!7
concept BigEntry {
S globalID;
long fileNr, headerStart, start, length;
}
p {
dbIndexing(BigEntry, 'globalID);
BigEntry entry = db_newStringEntry("Hello world");
print("Stored as: " + renderConcept(entry));
print("Read: " + db_getText(entry));
}
static BigEntry db_newStringEntry(S text) {
lock dbLock();
long fileNr = fileNrToAppendTo();
S globalID = aGlobalID();
File file = db_file(fileNr);
long length = fileSize(file);
long l = lUtf8(text);
S header = globalID + " " + l + "\n";
long start = length + lUtf8(header);
appendToTextFile(file, header + text + "\n");
ret cnew(BigEntry, +globalID, +fileNr, headerStart := length, +start, length := l);
}
static long fileNrToAppendTo() {
ret 1;
}
static File db_file(long nr) {
ret getProgramFile("db." + nr);
}
static S db_getText(BigEntry entry) {
File f = db_file(entry.fileNr);
ret fromUtf8(loadBinaryFilePart(f, entry.start, entry.start+entry.length));
}