Add traditional singleton
This commit is contained in:
parent
eb385a113f
commit
e5eac07702
7 changed files with 38 additions and 15 deletions
|
@ -42,16 +42,16 @@ private:
|
||||||
void setup_receive(void);
|
void setup_receive(void);
|
||||||
|
|
||||||
// LL_UsartCore pure virtual function implementations
|
// LL_UsartCore pure virtual function implementations
|
||||||
virtual void receiver_idle(void) override;
|
void receiver_idle(void) override;
|
||||||
virtual void transmission_complete(void) override;
|
void transmission_complete(void) override;
|
||||||
virtual void framing_error(void) override;
|
void framing_error(void) override;
|
||||||
virtual void overrun(void) override;
|
void overrun(void) override;
|
||||||
virtual void rx_dma_transfer_complete(void) override;
|
void rx_dma_transfer_complete(void) override;
|
||||||
virtual void rx_dma_half_transfer(void) override;
|
void rx_dma_half_transfer(void) override;
|
||||||
virtual void rx_dma_error(dma_helper::dma_error_type reason) override;
|
void rx_dma_error(dma_helper::dma_error_type reason) override;
|
||||||
virtual void tx_dma_transfer_complete(void) override;
|
void tx_dma_transfer_complete(void) override;
|
||||||
virtual void tx_dma_half_transfer(void) override;
|
void tx_dma_half_transfer(void) override;
|
||||||
virtual void tx_dma_error(dma_helper::dma_error_type reason) override;
|
void tx_dma_error(dma_helper::dma_error_type reason) override;
|
||||||
|
|
||||||
ringbuffer_ext m_tx_buffer;
|
ringbuffer_ext m_tx_buffer;
|
||||||
size_type m_bytes_sent = 0;
|
size_type m_bytes_sent = 0;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <cstdint>
|
||||||
|
|
||||||
#include <platform/dma_ll.h>
|
#include <platform/dma_ll.h>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <cstdint>
|
||||||
|
|
||||||
#include <platform/dma_ll.h>
|
#include <platform/dma_ll.h>
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
#define FAULT_REASON_BUS_FAULT 3
|
#define FAULT_REASON_BUS_FAULT 3
|
||||||
#define FAULT_REASON_USAGE_FAULT 4
|
#define FAULT_REASON_USAGE_FAULT 4
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <cstdint>
|
||||||
#include <stm32f4xx.h>
|
#include <stm32f4xx.h>
|
||||||
|
|
||||||
namespace f4ll {
|
namespace f4ll {
|
||||||
|
|
23
inc/f4ll/singleton.h
Normal file
23
inc/f4ll/singleton.h
Normal 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 {
|
|
@ -5,8 +5,6 @@
|
||||||
* Author: abody
|
* Author: abody
|
||||||
* -c "tpiu config internal <logfile_full_path> uart off <cpufreq>"
|
* -c "tpiu config internal <logfile_full_path> uart off <cpufreq>"
|
||||||
*/
|
*/
|
||||||
#include <inttypes.h>
|
|
||||||
|
|
||||||
#include <f4ll/fault.h>
|
#include <f4ll/fault.h>
|
||||||
#include <f4ll/str_util.h>
|
#include <f4ll/str_util.h>
|
||||||
#include <stm32f4xx.h>
|
#include <stm32f4xx.h>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue