diff options
Diffstat (limited to 'src/OutputMemory.cpp')
-rw-r--r-- | src/OutputMemory.cpp | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/src/OutputMemory.cpp b/src/OutputMemory.cpp index de2bd8e9..ccfee6c3 100644 --- a/src/OutputMemory.cpp +++ b/src/OutputMemory.cpp @@ -17,7 +17,7 @@ //************************************************************************************************* // OutputBuffer class implementation -void OutputBuffer::Append(OutputBuffer *other) +void OutputBuffer::Append(OutputBuffer *other) noexcept { if (other != nullptr) { @@ -35,7 +35,7 @@ void OutputBuffer::Append(OutputBuffer *other) } } -void OutputBuffer::IncreaseReferences(size_t refs) +void OutputBuffer::IncreaseReferences(size_t refs) noexcept { if (refs > 0) { @@ -49,7 +49,7 @@ void OutputBuffer::IncreaseReferences(size_t refs) } } -size_t OutputBuffer::Length() const +size_t OutputBuffer::Length() const noexcept { size_t totalLength = 0; for (const OutputBuffer *current = this; current != nullptr; current = current->Next()) @@ -59,7 +59,7 @@ size_t OutputBuffer::Length() const return totalLength; } -char &OutputBuffer::operator[](size_t index) +char &OutputBuffer::operator[](size_t index) noexcept { // Get the right buffer to access OutputBuffer *itemToIndex = this; @@ -73,7 +73,7 @@ char &OutputBuffer::operator[](size_t index) return itemToIndex->data[index]; } -char OutputBuffer::operator[](size_t index) const +char OutputBuffer::operator[](size_t index) const noexcept { // Get the right buffer to access const OutputBuffer *itemToIndex = this; @@ -87,14 +87,14 @@ char OutputBuffer::operator[](size_t index) const return itemToIndex->data[index]; } -const char *OutputBuffer::Read(size_t len) +const char *OutputBuffer::Read(size_t len) noexcept { size_t offset = bytesRead; bytesRead += len; return data + offset; } -size_t OutputBuffer::printf(const char *fmt, ...) +size_t OutputBuffer::printf(const char *fmt, ...) noexcept { char formatBuffer[FormatStringLength]; va_list vargs; @@ -105,7 +105,7 @@ size_t OutputBuffer::printf(const char *fmt, ...) return copy(formatBuffer); } -size_t OutputBuffer::vprintf(const char *fmt, va_list vargs) +size_t OutputBuffer::vprintf(const char *fmt, va_list vargs) noexcept { char formatBuffer[FormatStringLength]; SafeVsnprintf(formatBuffer, ARRAY_SIZE(formatBuffer), fmt, vargs); @@ -113,7 +113,7 @@ size_t OutputBuffer::vprintf(const char *fmt, va_list vargs) return cat(formatBuffer); } -size_t OutputBuffer::catf(const char *fmt, ...) +size_t OutputBuffer::catf(const char *fmt, ...) noexcept { char formatBuffer[FormatStringLength]; va_list vargs; @@ -125,7 +125,7 @@ size_t OutputBuffer::catf(const char *fmt, ...) return cat(formatBuffer); } -size_t OutputBuffer::copy(const char c) +size_t OutputBuffer::copy(const char c) noexcept { // Unlink existing entries before starting the copy process if (next != nullptr) @@ -140,12 +140,12 @@ size_t OutputBuffer::copy(const char c) return 1; } -size_t OutputBuffer::copy(const char *src) +size_t OutputBuffer::copy(const char *src) noexcept { return copy(src, strlen(src)); } -size_t OutputBuffer::copy(const char *src, size_t len) +size_t OutputBuffer::copy(const char *src, size_t len) noexcept { // Unlink existing entries before starting the copy process if (next != nullptr) @@ -158,7 +158,7 @@ size_t OutputBuffer::copy(const char *src, size_t len) return cat(src, len); } -size_t OutputBuffer::cat(const char c) +size_t OutputBuffer::cat(const char c) noexcept { // See if we can append a char if (last->dataLength == OUTPUT_BUFFER_SIZE) @@ -189,12 +189,12 @@ size_t OutputBuffer::cat(const char c) return 1; } -size_t OutputBuffer::cat(const char *src) +size_t OutputBuffer::cat(const char *src) noexcept { return cat(src, strlen(src)); } -size_t OutputBuffer::cat(const char *src, size_t len) +size_t OutputBuffer::cat(const char *src, size_t len) noexcept { size_t copied = 0; while (copied < len) @@ -225,13 +225,13 @@ size_t OutputBuffer::cat(const char *src, size_t len) return copied; } -size_t OutputBuffer::cat(StringRef &str) +size_t OutputBuffer::cat(StringRef &str) noexcept { return cat(str.c_str(), str.strlen()); } // Encode a character in JSON format, and append it to the buffer and return the number of bytes written -size_t OutputBuffer::EncodeChar(char c) +size_t OutputBuffer::EncodeChar(char c) noexcept { char esc; switch (c) @@ -271,7 +271,7 @@ size_t OutputBuffer::EncodeChar(char c) } // Encode a string in JSON format and append it to the buffer and return the number of bytes written -size_t OutputBuffer::EncodeString(const char *src, bool allowControlChars, bool prependAsterisk) +size_t OutputBuffer::EncodeString(const char *src, bool allowControlChars, bool prependAsterisk) noexcept { size_t bytesWritten = cat('"'); if (prependAsterisk) @@ -292,7 +292,7 @@ size_t OutputBuffer::EncodeString(const char *src, bool allowControlChars, bool return bytesWritten; } -size_t OutputBuffer::EncodeReply(OutputBuffer *src) +size_t OutputBuffer::EncodeReply(OutputBuffer *src) noexcept { size_t bytesWritten = cat('"'); @@ -313,7 +313,7 @@ size_t OutputBuffer::EncodeReply(OutputBuffer *src) // Write all the data to file, but don't release the buffers // Returns true if successful -bool OutputBuffer::WriteToFile(FileData& f) const +bool OutputBuffer::WriteToFile(FileData& f) const noexcept { bool endedInNewline = false; const OutputBuffer *current = this; @@ -340,7 +340,7 @@ bool OutputBuffer::WriteToFile(FileData& f) const #endif // Initialise the output buffers manager -/*static*/ void OutputBuffer::Init() +/*static*/ void OutputBuffer::Init() noexcept { freeOutputBuffers = nullptr; for (size_t i = 0; i < OUTPUT_BUFFER_COUNT; i++) @@ -350,7 +350,7 @@ bool OutputBuffer::WriteToFile(FileData& f) const } // Allocates an output buffer instance which can be used for (large) string outputs. This must be thread safe. Not safe to call from interrupts! -/*static*/ bool OutputBuffer::Allocate(OutputBuffer *&buf) +/*static*/ bool OutputBuffer::Allocate(OutputBuffer *&buf) noexcept { { TaskCriticalSectionLocker lock; @@ -383,7 +383,7 @@ bool OutputBuffer::WriteToFile(FileData& f) const } // Get the number of bytes left for continuous writing -/*static*/ size_t OutputBuffer::GetBytesLeft(const OutputBuffer *writingBuffer) +/*static*/ size_t OutputBuffer::GetBytesLeft(const OutputBuffer *writingBuffer) noexcept { const size_t freeOutputBuffers = OUTPUT_BUFFER_COUNT - usedOutputBuffers; const size_t bytesLeft = OUTPUT_BUFFER_SIZE - writingBuffer->last->DataLength(); @@ -399,7 +399,7 @@ bool OutputBuffer::WriteToFile(FileData& f) const // Truncate an output buffer to free up more memory. Returns the number of released bytes. // This never releases the first buffer in the chain, so call it with a large value of bytesNeeded to release all buffers except the first. -/*static */ size_t OutputBuffer::Truncate(OutputBuffer *buffer, size_t bytesNeeded) +/*static */ size_t OutputBuffer::Truncate(OutputBuffer *buffer, size_t bytesNeeded) noexcept { // Can we free up space from this chain? Don't break it up if it's referenced anywhere else if (buffer == nullptr || buffer->Next() == nullptr || buffer->IsReferenced()) @@ -436,7 +436,7 @@ bool OutputBuffer::WriteToFile(FileData& f) const } // Releases an output buffer instance and returns the next entry from the chain -/*static */ OutputBuffer *OutputBuffer::Release(OutputBuffer *buf) +/*static */ OutputBuffer *OutputBuffer::Release(OutputBuffer *buf) noexcept { TaskCriticalSectionLocker lock; OutputBuffer * const nextBuffer = buf->next; @@ -457,7 +457,7 @@ bool OutputBuffer::WriteToFile(FileData& f) const return nextBuffer; } -/*static */ void OutputBuffer::ReleaseAll(OutputBuffer * volatile &buf) +/*static */ void OutputBuffer::ReleaseAll(OutputBuffer * volatile &buf) noexcept { while (buf != nullptr) { @@ -465,7 +465,7 @@ bool OutputBuffer::WriteToFile(FileData& f) const } } -/*static*/ void OutputBuffer::Diagnostics(MessageType mtype) +/*static*/ void OutputBuffer::Diagnostics(MessageType mtype) noexcept { reprap.GetPlatform().MessageF(mtype, "Used output buffers: %d of %d (%d max)\n", usedOutputBuffers, OUTPUT_BUFFER_COUNT, maxUsedOutputBuffers); @@ -475,7 +475,7 @@ bool OutputBuffer::WriteToFile(FileData& f) const // OutputStack class implementation // Push an OutputBuffer chain. Return true if successful, else release the buffer and return false. -bool OutputStack::Push(OutputBuffer *buffer, MessageType type) volatile +bool OutputStack::Push(OutputBuffer *buffer, MessageType type) volatile noexcept { { TaskCriticalSectionLocker lock; @@ -498,7 +498,7 @@ bool OutputStack::Push(OutputBuffer *buffer, MessageType type) volatile } // Pop an OutputBuffer chain or return nullptr if none is available -OutputBuffer *OutputStack::Pop() volatile +OutputBuffer *OutputStack::Pop() volatile noexcept { TaskCriticalSectionLocker lock; @@ -519,13 +519,13 @@ OutputBuffer *OutputStack::Pop() volatile } // Returns the first item from the stack or nullptr if none is available -OutputBuffer *OutputStack::GetFirstItem() const volatile +OutputBuffer *OutputStack::GetFirstItem() const volatile noexcept { return (count == 0) ? nullptr : items[0]; } // Returns the first item's type from the stack or NoDestinationMessage if none is available -MessageType OutputStack::GetFirstItemType() const volatile +MessageType OutputStack::GetFirstItemType() const volatile noexcept { return (count == 0) ? MessageType::NoDestinationMessage : types[0]; } @@ -533,7 +533,7 @@ MessageType OutputStack::GetFirstItemType() const volatile #if HAS_LINUX_INTERFACE // Update the first item of the stack -void OutputStack::SetFirstItem(OutputBuffer *buffer) volatile +void OutputStack::SetFirstItem(OutputBuffer *buffer) volatile noexcept { if (count != 0) { @@ -552,7 +552,7 @@ void OutputStack::SetFirstItem(OutputBuffer *buffer) volatile #endif // Release the first item at the top of the stack -void OutputStack::ReleaseFirstItem() volatile +void OutputStack::ReleaseFirstItem() volatile noexcept { if (count != 0) { @@ -569,7 +569,7 @@ void OutputStack::ReleaseFirstItem() volatile } // Release the first item on the top of the stack if it is too old. Return true if the item was timed out or was null. -bool OutputStack::ApplyTimeout(uint32_t ticks) volatile +bool OutputStack::ApplyTimeout(uint32_t ticks) volatile noexcept { bool ret = false; if (count != 0) @@ -590,19 +590,19 @@ bool OutputStack::ApplyTimeout(uint32_t ticks) volatile } // Returns the last item from the stack or nullptr if none is available -OutputBuffer *OutputStack::GetLastItem() const volatile +OutputBuffer *OutputStack::GetLastItem() const volatile noexcept { return (count == 0) ? nullptr : items[count - 1]; } // Returns the type of the last item from the stack or NoDestinationMessage if none is available -MessageType OutputStack::GetLastItemType() const volatile +MessageType OutputStack::GetLastItemType() const volatile noexcept { return (count == 0) ? MessageType::NoDestinationMessage : types[count - 1]; } // Get the total length of all queued buffers -size_t OutputStack::DataLength() const volatile +size_t OutputStack::DataLength() const volatile noexcept { size_t totalLength = 0; @@ -620,7 +620,7 @@ size_t OutputStack::DataLength() const volatile // Append another OutputStack to this instance. If no more space is available, // all OutputBuffers that can't be added are automatically released -void OutputStack::Append(volatile OutputStack& stack) volatile +void OutputStack::Append(volatile OutputStack& stack) volatile noexcept { for (size_t i = 0; i < stack.count; i++) { @@ -639,7 +639,7 @@ void OutputStack::Append(volatile OutputStack& stack) volatile } // Increase the number of references for each OutputBuffer on the stack -void OutputStack::IncreaseReferences(size_t num) volatile +void OutputStack::IncreaseReferences(size_t num) volatile noexcept { TaskCriticalSectionLocker lock; for (size_t i = 0; i < count; i++) @@ -652,7 +652,7 @@ void OutputStack::IncreaseReferences(size_t num) volatile } // Release all buffers and clean up -void OutputStack::ReleaseAll() volatile +void OutputStack::ReleaseAll() volatile noexcept { for (size_t i = 0; i < count; i++) { |