Radio Structures in OOP

Dependencies:   mbed mbed-rtos

utils/RTOS_Management/MailHelper.h

Committer:
jjones646
Date:
2015-01-15
Revision:
6:4a3dbfbc30f1
Parent:
3:dc7e9c6bc26c

File content as of revision 6:4a3dbfbc30f1:

#ifndef MAIL_HELPER_H
#define MAIL_HELPER_H

#include "mbed.h"
#include "cmsis.h"

template<class T, unsigned int size>
class MailHelper
{
public:
    MailHelper() {
#ifdef CMSIS_OS_RTX
        memset(_q, 0, sizeof(_q));
        _ptr[0] = _q;

        memset(_m, 0, sizeof(_m));
        _ptr[1] = _m;

        _def.pool = _ptr;
        _def.item_sz = sizeof(T);
        _def.queue_sz = size;
#endif
    };

    osMailQDef_t* def(void) { return &_def; }

private:
    osMailQDef_t    _def;

#ifdef CMSIS_OS_RTX
    uint32_t    _q[4+size];
    uint32_t    _m[3+((sizeof(T)+3)/4)*size];
    void*       _ptr[2];
#endif
};

#endif  // MAIL_HELPER_H