[code] Cleaned Script and ScriptStore classes, created accordion.h

A Script object now contains its AutoImport marker, its name and its
content. The ScripStore methods have better names and the optimization
is cleaner.

Change-Id: I1b21af2d23f1c9a34f984309512b0c01b2f1c320
This commit is contained in:
Léa Saviot
2017-10-25 18:02:01 +02:00
committed by Romain Goyet
parent a14cfd0aea
commit fbb5c70339
15 changed files with 498 additions and 419 deletions

View File

@@ -2,21 +2,35 @@
namespace Code {
Script::Script(char * textBuffer, size_t sizeOfBuffer) :
m_bufferSize(sizeOfBuffer),
m_textBuffer(textBuffer)
Script::Script(const char * marker, const char * name, size_t nameBufferSize, const char * content, size_t contentBufferSize) :
m_marker(marker),
m_name(name),
m_nameBufferSize(nameBufferSize),
m_content(content),
m_contentBufferSize(contentBufferSize)
{
}
const char * Script::readOnlyContent() const {
return m_textBuffer;
bool Script::isNull() const {
if (m_marker == nullptr) {
assert(m_name == nullptr);
assert(m_nameBufferSize == 0);
assert(m_content == nullptr);
assert(m_contentBufferSize == 0);
return true;
}
return false;
}
char * Script::editableContent() {
return m_textBuffer;
}
size_t Script::bufferSize() const {
return m_bufferSize;
bool Script::autoimport() const {
assert(!isNull());
assert(m_marker != nullptr);
if (m_marker[0] == AutoImportationMarker) {
return true;
}
assert (m_marker[0] == NoAutoImportationMarker);
return false;
}
}