Add traditional singleton

This commit is contained in:
Attila Body 2025-06-29 17:04:37 +02:00
parent eb385a113f
commit e5eac07702
Signed by: abody
GPG key ID: BD0C6214E68FB5CF
7 changed files with 38 additions and 15 deletions

View file

@ -42,16 +42,16 @@ private:
void setup_receive(void);
// LL_UsartCore pure virtual function implementations
virtual void receiver_idle(void) override;
virtual void transmission_complete(void) override;
virtual void framing_error(void) override;
virtual void overrun(void) override;
virtual void rx_dma_transfer_complete(void) override;
virtual void rx_dma_half_transfer(void) override;
virtual void rx_dma_error(dma_helper::dma_error_type reason) override;
virtual void tx_dma_transfer_complete(void) override;
virtual void tx_dma_half_transfer(void) override;
virtual void tx_dma_error(dma_helper::dma_error_type reason) override;
void receiver_idle(void) override;
void transmission_complete(void) override;
void framing_error(void) override;
void overrun(void) override;
void rx_dma_transfer_complete(void) override;
void rx_dma_half_transfer(void) override;
void rx_dma_error(dma_helper::dma_error_type reason) override;
void tx_dma_transfer_complete(void) override;
void tx_dma_half_transfer(void) override;
void tx_dma_error(dma_helper::dma_error_type reason) override;
ringbuffer_ext m_tx_buffer;
size_type m_bytes_sent = 0;

View file

@ -6,7 +6,7 @@
*/
#pragma once
#include <inttypes.h>
#include <cstdint>
#include <platform/dma_ll.h>

View file

@ -7,7 +7,7 @@
#pragma once
#include <inttypes.h>
#include <cstdint>
#include <platform/dma_ll.h>

View file

@ -5,6 +5,8 @@
#define FAULT_REASON_BUS_FAULT 3
#define FAULT_REASON_USAGE_FAULT 4
#include <cstdint>
#ifdef __cplusplus
extern "C" {
#endif

View file

@ -1,6 +1,6 @@
#pragma once
#include <inttypes.h>
#include <cstdint>
#include <stm32f4xx.h>
namespace f4ll {

23
inc/f4ll/singleton.h Normal file
View file

@ -0,0 +1,23 @@
#pragma once
namespace f4ll {
template <typename T> class singleton
{
public:
static T &instance()
{
static T instance;
return instance;
}
protected:
singleton() = default;
singleton(const singleton &) = delete;
singleton &operator=(const singleton &) = delete;
static T *m_instance;
};
template <typename T> T *singleton<T>::m_instance = nullptr;
} // namespace f1ll {

View file

@ -5,8 +5,6 @@
* Author: abody
* -c "tpiu config internal <logfile_full_path> uart off <cpufreq>"
*/
#include <inttypes.h>
#include <f4ll/fault.h>
#include <f4ll/str_util.h>
#include <stm32f4xx.h>