diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/conversion.cpp | 42 | ||||
| -rw-r--r-- | src/common/conversion.hpp | 36 | ||||
| -rw-r--r-- | src/common/memory.hpp | 13 | ||||
| -rw-r--r-- | src/common/memory.tpp | 27 | ||||
| -rw-r--r-- | src/common/memory/shared_ptr.hpp | 44 | ||||
| -rw-r--r-- | src/common/memory/shared_ptr.tpp | 153 | ||||
| -rw-r--r-- | src/common/memory/unique_ptr.hpp | 37 | ||||
| -rw-r--r-- | src/common/memory/unique_ptr.tpp | 55 | ||||
| -rw-r--r-- | src/common/string.cpp | 70 | ||||
| -rw-r--r-- | src/common/string.hpp | 25 | ||||
| -rw-r--r-- | src/common/time.cpp | 42 | ||||
| -rw-r--r-- | src/common/time.hpp | 60 | 
12 files changed, 0 insertions, 604 deletions
| diff --git a/src/common/conversion.cpp b/src/common/conversion.cpp deleted file mode 100644 index b016537..0000000 --- a/src/common/conversion.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "conversion.hpp" - -#include <math.h> -#include <stdlib.h> - -namespace common -{ - -common::UniquePtr<common::String> doubleToStr(double num, unsigned int width, -											  unsigned int precision) -{ -	auto str = common::make_unique<common::String>(width + precision); - -	dtostrf(num, static_cast<signed char>(width), static_cast<unsigned char>(precision), -			str->c_str); - -	return str; -} - -common::UniquePtr<common::String> intToStr(int num) -{ -	auto width = static_cast<unsigned int>(log10(num)); - -	auto str = common::make_unique<common::String>(width + 1U); - -	dtostrf(num, static_cast<signed char>(width + 1U), 0U, str->c_str); - -	return str; -} - -common::UniquePtr<common::String> uintToStr(unsigned int num) -{ -	auto width = static_cast<unsigned int>(log10(num)); - -	auto str = common::make_unique<common::String>(width + 1U); - -	dtostrf(num, static_cast<signed char>(width + 1U), 0U, str->c_str); - -	return str; -} - -} // namespace common diff --git a/src/common/conversion.hpp b/src/common/conversion.hpp deleted file mode 100644 index e87adc5..0000000 --- a/src/common/conversion.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include "common/memory/unique_ptr.hpp" -#include "common/string.hpp" - -namespace common -{ - -/** - * Converts a double number to a string. - * - * @param num A double number - * @param width The desired double width - * @param precision The desired double precision - * @returns The double as a string. - */ -common::UniquePtr<common::String> doubleToStr(double num, unsigned int width = 3, -											  unsigned int precision = 2); - -/** - * Converts a integer to a string. - * - * @param num A number - * @returns The number as a string. - */ -common::UniquePtr<common::String> intToStr(int num); - -/** - * Converts a unsigned integer to a string. - * - * @param num A number - * @returns The number as a string. - */ -common::UniquePtr<common::String> uintToStr(unsigned int num); - -} // namespace common diff --git a/src/common/memory.hpp b/src/common/memory.hpp deleted file mode 100644 index 888ede3..0000000 --- a/src/common/memory.hpp +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include <stddef.h> - -namespace common -{ - -template <typename memType> -memType *malloc_s(unsigned int size); - -} // namespace common - -#include "memory.tpp" diff --git a/src/common/memory.tpp b/src/common/memory.tpp deleted file mode 100644 index af833bc..0000000 --- a/src/common/memory.tpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -#include "memory.hpp" - -#include "utils.hpp" - -#include <Arduino.h> -#include <stdlib.h> - -namespace common -{ - -template <typename memType> -memType *malloc_s(unsigned int size) -{ -	auto *mem = malloc(size); - -	if (mem == nullptr) -	{ -		Serial.println("Error: Memory allocation failed"); -		while (true) {} -	} - -	return static_cast<memType *>(mem); -} - -} // namespace common diff --git a/src/common/memory/shared_ptr.hpp b/src/common/memory/shared_ptr.hpp deleted file mode 100644 index 7e8a910..0000000 --- a/src/common/memory/shared_ptr.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once
 -
 -#include <stddef.h>
 -
 -namespace common
 -{
 -template <class Target>
 -class SharedPtr
 -{
 -public:
 -	SharedPtr() noexcept;
 -	SharedPtr(nullptr_t) noexcept; // NOLINT(google-explicit-constructor)
 -
 -	explicit SharedPtr(Target *target) noexcept;
 -
 -	SharedPtr(const SharedPtr &shared_ptr) noexcept;
 -
 -	SharedPtr(SharedPtr &&shared_ptr) noexcept;
 -
 -	~SharedPtr() noexcept;
 -
 -	[[nodiscard]] unsigned int reference_cnt() const noexcept;
 -
 -	[[nodiscard]] bool is_disposable() const noexcept;
 -
 -	SharedPtr &operator=(const SharedPtr &rhs) noexcept;
 -
 -	SharedPtr &operator=(SharedPtr &&rhs) noexcept;
 -
 -	Target &operator*() const noexcept;
 -	Target *operator->() const noexcept;
 -
 -private:
 -	Target *_target = nullptr;
 -
 -	unsigned int *_reference_cnt;
 -};
 -
 -template <typename Target, typename... Args>
 -SharedPtr<Target> make_shared(Args &&...args) noexcept;
 -
 -} // namespace common
 -
 -#include "shared_ptr.tpp"
 diff --git a/src/common/memory/shared_ptr.tpp b/src/common/memory/shared_ptr.tpp deleted file mode 100644 index d9b57c3..0000000 --- a/src/common/memory/shared_ptr.tpp +++ /dev/null @@ -1,153 +0,0 @@ -#pragma once
 -
 -#include "shared_ptr.hpp"
 -
 -#include "common/memory.hpp"
 -
 -#include <stdlib.h>
 -
 -namespace common
 -{
 -
 -template <class Target>
 -SharedPtr<Target>::SharedPtr() noexcept
 -	: _reference_cnt(malloc_s<unsigned int>(sizeof(unsigned int)))
 -{
 -	(*_reference_cnt) = 0;
 -}
 -
 -template <class Target>
 -SharedPtr<Target>::SharedPtr(nullptr_t) noexcept
 -	: _reference_cnt(malloc_s<unsigned int>(sizeof(unsigned int)))
 -{
 -	(*_reference_cnt) = 0;
 -}
 -
 -template <class Target>
 -SharedPtr<Target>::SharedPtr(Target *target) noexcept
 -	: _target(target), _reference_cnt(malloc_s<unsigned int>(sizeof(unsigned int)))
 -{
 -	(*_reference_cnt) = 0;
 -}
 -
 -/**
 - * Copy constructor
 - */
 -template <class Target>
 -SharedPtr<Target>::SharedPtr(const SharedPtr &shared_ptr) noexcept
 -	: _target(shared_ptr._target), _reference_cnt(shared_ptr._reference_cnt)
 -{
 -	(*_reference_cnt)++;
 -}
 -
 -/**
 - * Move constructor
 - */
 -template <class Target>
 -SharedPtr<Target>::SharedPtr(SharedPtr &&shared_ptr) noexcept
 -	: _target(shared_ptr._target), _reference_cnt(shared_ptr._reference_cnt)
 -{
 -	shared_ptr._target = nullptr;
 -}
 -
 -template <class Target>
 -SharedPtr<Target>::~SharedPtr() noexcept
 -{
 -	if ((*_reference_cnt) != 0U)
 -	{
 -		(*_reference_cnt)--;
 -	}
 -
 -	if ((*_reference_cnt) == 0U)
 -	{
 -		delete _target;
 -		free(_reference_cnt);
 -		_reference_cnt = nullptr;
 -	}
 -}
 -
 -template <class Target>
 -unsigned int SharedPtr<Target>::reference_cnt() const noexcept
 -{
 -	if (_reference_cnt == nullptr)
 -	{
 -		return 0;
 -	}
 -
 -	return *_reference_cnt;
 -}
 -
 -template <class Target>
 -bool SharedPtr<Target>::is_disposable() const noexcept
 -{
 -	return _reference_cnt == nullptr || (*_reference_cnt) == 0U;
 -}
 -
 -/**
 - * Copy assignment operator
 - */
 -template <class Target>
 -SharedPtr<Target> &SharedPtr<Target>::operator=(const SharedPtr &rhs) noexcept
 -{
 -	if (&rhs != this)
 -	{
 -		if (is_disposable())
 -		{
 -			delete _target;
 -			free(_reference_cnt);
 -		}
 -
 -		_target = nullptr;
 -		_target = rhs._target;
 -
 -		_reference_cnt = nullptr;
 -		_reference_cnt = rhs._reference_cnt;
 -		(*_reference_cnt)++;
 -	}
 -
 -	return *this;
 -}
 -
 -/**
 - * Move assignment operator
 - */
 -template <class Target>
 -SharedPtr<Target> &SharedPtr<Target>::operator=(SharedPtr &&rhs) noexcept
 -{
 -	if (&rhs != this)
 -	{
 -		if (is_disposable())
 -		{
 -			delete _target;
 -			free(_reference_cnt);
 -		}
 -
 -		_target = rhs._target;
 -		rhs._target = nullptr;
 -
 -		_reference_cnt = rhs._reference_cnt;
 -		rhs._reference_cnt = nullptr;
 -	}
 -
 -	return *this;
 -}
 -
 -template <class Target>
 -Target &SharedPtr<Target>::operator*() const noexcept
 -{
 -	return *(_target);
 -}
 -
 -template <class Target>
 -Target *SharedPtr<Target>::operator->() const noexcept
 -{
 -	return _target;
 -}
 -
 -template <class Target, typename... Args>
 -SharedPtr<Target> make_shared(Args &&...args) noexcept
 -{
 -	return SharedPtr<Target>(new Target(args...));
 -}
 -
 -} // namespace common
 diff --git a/src/common/memory/unique_ptr.hpp b/src/common/memory/unique_ptr.hpp deleted file mode 100644 index 94c02d0..0000000 --- a/src/common/memory/unique_ptr.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once
 -
 -namespace common
 -{
 -template <class Target>
 -class UniquePtr
 -{
 -public:
 -	explicit UniquePtr() = default;
 -	explicit UniquePtr(Target *target);
 -
 -	// Move constructor
 -	UniquePtr(UniquePtr &&unique_ptr) noexcept;
 -
 -	// Move assignment operator
 -	UniquePtr &operator=(UniquePtr &&unique_ptr) noexcept;
 -
 -	// Disable the copy constructor
 -	UniquePtr(const UniquePtr &unique_ptr) = delete;
 -
 -	// Disable the copy assignment operator
 -	UniquePtr &operator=(const UniquePtr &unique_ptr) = delete;
 -
 -	~UniquePtr();
 -
 -	Target operator*() const;
 -	Target *operator->() const;
 -
 -private:
 -	Target *_target = nullptr;
 -};
 -
 -template <typename Target, typename... Args>
 -UniquePtr<Target> make_unique(Args... args);
 -} // namespace common
 -
 -#include "unique_ptr.tpp"
 diff --git a/src/common/memory/unique_ptr.tpp b/src/common/memory/unique_ptr.tpp deleted file mode 100644 index 3cab9ec..0000000 --- a/src/common/memory/unique_ptr.tpp +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once
 -
 -#include "unique_ptr.hpp"
 -
 -namespace common
 -{
 -template <class Target>
 -UniquePtr<Target>::UniquePtr(Target *target) : _target(target)
 -{
 -}
 -
 -template <class Target>
 -UniquePtr<Target>::UniquePtr(UniquePtr &&unique_ptr) noexcept
 -	: _target(unique_ptr._target)
 -{
 -	unique_ptr._target = nullptr;
 -}
 -
 -template <class Target>
 -UniquePtr<Target> &UniquePtr<Target>::operator=(UniquePtr &&unique_ptr) noexcept
 -{
 -	if (&unique_ptr != this)
 -	{
 -		delete _target;
 -		_target = unique_ptr._target;
 -		unique_ptr._target = nullptr;
 -	}
 -
 -	return *this;
 -}
 -
 -template <class Target>
 -UniquePtr<Target>::~UniquePtr()
 -{
 -	delete _target;
 -}
 -
 -template <class Target>
 -Target UniquePtr<Target>::operator*() const
 -{
 -	return *(_target);
 -}
 -
 -template <class Target>
 -Target *UniquePtr<Target>::operator->() const
 -{
 -	return _target;
 -}
 -
 -template <class Target, typename... Args>
 -UniquePtr<Target> make_unique(Args... args)
 -{
 -	return UniquePtr<Target>(new Target(args...));
 -}
 -} // namespace common
 diff --git a/src/common/string.cpp b/src/common/string.cpp deleted file mode 100644 index 27b65d4..0000000 --- a/src/common/string.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "string.hpp" - -#include "common/memory.hpp" - -#include <stdlib.h> - -namespace common -{ - -String::String(char *c_string) : c_str(c_string) -{ -} - -String::String(unsigned int size) : c_str(malloc_s<char>(size + 1)) -{ -} - -String::String(const String &smart_str) -	: c_str(malloc_s<char>(strlen(smart_str.c_str) + 1)) -{ -	memcpy(c_str, smart_str.c_str, strlen(smart_str.c_str) + 1); -} - -String::String(String &&smart_str) noexcept : c_str(smart_str.c_str) -{ -	smart_str.c_str = nullptr; -} - -String &String::operator=(const String &smart_str) -{ -	if (&smart_str != this) -	{ -		free(c_str); -		c_str = nullptr; - -		auto str_size = strlen(smart_str.c_str) + 1; - -		c_str = malloc_s<char>(str_size); -		memcpy(c_str, smart_str.c_str, str_size); -	} - -	return *this; -} - -String &String::operator=(String &&smart_str) noexcept -{ -	if (&smart_str != this) -	{ -		free(c_str); -		c_str = smart_str.c_str; -		smart_str.c_str = nullptr; -	} - -	return *this; -} - -String::~String() -{ -	if (c_str != nullptr) -	{ -		free(c_str); -	} -} - -String::operator char *() const -{ -	return c_str; -} - -} // namespace common diff --git a/src/common/string.hpp b/src/common/string.hpp deleted file mode 100644 index 2641457..0000000 --- a/src/common/string.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -namespace common -{ - -class String -{ -public: -	explicit String(char *c_str); -	explicit String(unsigned int size); -	String(const String &smart_str); -	String(String &&smart_str) noexcept; - -	String &operator=(const String &smart_str); - -	String &operator=(String &&smart_str) noexcept; - -	~String(); - -	explicit operator char *() const; - -	char *c_str = nullptr; -}; - -} // namespace common diff --git a/src/common/time.cpp b/src/common/time.cpp deleted file mode 100644 index ee297d7..0000000 --- a/src/common/time.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "time.hpp" - -#include <Arduino.h> - -namespace common -{ - -	Time::Time(uint64_t time_micros) : _time_micros(time_micros) -	{ -	} - -	void Time::update() -	{ -		_time_micros = micros(); -	} - -	Time Time::diff(Time prev_time) const -	{ -		return Time(_time_micros - prev_time.microsecs()); -	} - -	double Time::secs() const -	{ -		return static_cast<double>(_time_micros) * MICROS_TO_SECS; -	} - -	double Time::millisecs() const -	{ -		return static_cast<double>(_time_micros) * MICROS_TO_MILLIS; -	} - -	uint64_t Time::microsecs() const -	{ -		return _time_micros; -	} - -	Time time_now() -	{ -		return Time(micros()); -	} - -} // namespace common diff --git a/src/common/time.hpp b/src/common/time.hpp deleted file mode 100644 index 8efbd28..0000000 --- a/src/common/time.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#pragma once - -#include <stdint.h> - -constexpr double MICROS_TO_SECS = 0.000001; -constexpr double MICROS_TO_MILLIS = 0.001; - -namespace common -{ - -	/** -	 * A representation of time. -	 */ -	class Time -	{ -	public: -		/** -		 * A representation of time. -		 * -		 * @param time_micros Time in microseconds -		 */ -		explicit Time(uint64_t time_micros); - -		/** -		 * Updates the time to the current time. -		 */ -		void update(); - -		/** -		 * Returns the difference between two points in time. -		 * -		 * @param prev_time A previous point in time -		 */ -		Time diff(Time prev_time) const; - -		/** -		 * Returns the time in seconds. -		 */ -		double secs() const; - -		/** -		 * Returns the time in milliseconds. -		 */ -		double millisecs() const; - -		/** -		 * Returns the time in microseconds. -		 */ -		uint64_t microsecs() const; - -	private: -		uint64_t _time_micros; -	}; - -	/** -	 * Returns a time object for the time since the program started. -	 */ -	Time time_now(); - -} // namespace common | 
