mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
62 lines
1.8 KiB
C++
62 lines
1.8 KiB
C++
#include "script_store.h"
|
|
|
|
namespace Code {
|
|
|
|
constexpr char ScriptStore::k_scriptExtension[];
|
|
|
|
bool ScriptStore::ScriptNameIsFree(const char * baseName) {
|
|
return ScriptBaseNamed(baseName).isNull();
|
|
}
|
|
|
|
// Here we add "base" script
|
|
ScriptStore::ScriptStore() {
|
|
|
|
}
|
|
|
|
void ScriptStore::deleteAllScripts() {
|
|
for (int i = numberOfScripts() - 1; i >= 0; i--) {
|
|
scriptAtIndex(i).destroy();
|
|
}
|
|
}
|
|
|
|
bool ScriptStore::isFull() {
|
|
return Ion::Storage::sharedStorage()->availableSize() < k_fullFreeSpaceSizeLimit;
|
|
}
|
|
|
|
const char * ScriptStore::contentOfScript(const char * name, bool markAsFetched) {
|
|
Script script = ScriptNamed(name);
|
|
if (script.isNull()) {
|
|
return nullptr;
|
|
}
|
|
if (markAsFetched) {
|
|
script.setFetchedFromConsole(true);
|
|
}
|
|
return script.content();
|
|
}
|
|
|
|
void ScriptStore::clearVariableBoxFetchInformation() {
|
|
// TODO optimize fetches
|
|
const int scriptsCount = numberOfScripts();
|
|
for (int i = 0; i < scriptsCount; i++) {
|
|
scriptAtIndex(i).setFetchedForVariableBox(false);
|
|
}
|
|
}
|
|
|
|
void ScriptStore::clearConsoleFetchInformation() {
|
|
// TODO optimize fetches
|
|
const int scriptsCount = numberOfScripts();
|
|
for (int i = 0; i < scriptsCount; i++) {
|
|
scriptAtIndex(i).setFetchedFromConsole(false);
|
|
}
|
|
}
|
|
|
|
Script::ErrorStatus ScriptStore::addScriptFromTemplate(const ScriptTemplate * scriptTemplate) {
|
|
size_t valueSize = Script::StatusSize() + strlen(scriptTemplate->content()) + 1; // (auto importation status + content fetched status) + scriptcontent size + null-terminating char
|
|
assert(Script::nameCompliant(scriptTemplate->name()));
|
|
Script::ErrorStatus err = Ion::Storage::sharedStorage()->createRecordWithFullName(scriptTemplate->name(), scriptTemplate->value(), valueSize);
|
|
assert(err != Script::ErrorStatus::NonCompliantName);
|
|
return err;
|
|
}
|
|
|
|
}
|