49 lines
1.2 KiB
C
49 lines
1.2 KiB
C
|
#ifndef BSP_Q7S_MEMORY_SDCARDACCESSMANAGER_H_
|
||
|
#define BSP_Q7S_MEMORY_SDCARDACCESSMANAGER_H_
|
||
|
|
||
|
#include "definitions.h"
|
||
|
|
||
|
#include <cstdint>
|
||
|
|
||
|
class MutexIF;
|
||
|
|
||
|
/**
|
||
|
* @brief This class manages selecting and switching the active SD card, therefore also
|
||
|
* managing the redundancy of the SD cards
|
||
|
* @details
|
||
|
* This class will track the currently active users for a SD card. It is always used by the
|
||
|
* SD card access token automatically to get the currently active SD card in a thread safe way-
|
||
|
*/
|
||
|
class SdCardAccessManager {
|
||
|
friend class SdCardAccess;
|
||
|
public:
|
||
|
virtual ~SdCardAccessManager();
|
||
|
|
||
|
static void create();
|
||
|
|
||
|
/**
|
||
|
* Returns the single instance of the SD card manager.
|
||
|
*/
|
||
|
static SdCardAccessManager* instance();
|
||
|
|
||
|
sd::SdCard getPreferedSdCard() const;
|
||
|
|
||
|
/**
|
||
|
* Get current number of SD card users
|
||
|
* @param sdCard
|
||
|
* @return
|
||
|
*/
|
||
|
uint8_t getSdCardAccessors(sd::SdCard sdCard) const;
|
||
|
|
||
|
private:
|
||
|
SdCardAccessManager();
|
||
|
MutexIF* mutex;
|
||
|
|
||
|
uint8_t activeAccessesSdCard0 = 0;
|
||
|
uint8_t activeAccessesSdCard1 = 0;
|
||
|
|
||
|
static SdCardAccessManager* factoryInstance;
|
||
|
};
|
||
|
|
||
|
#endif /* BSP_Q7S_MEMORY_SDCARDACCESSMANAGER_H_ */
|