Radio Structures in OOP

Dependencies:   mbed mbed-rtos

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MailHelper.h Source File

MailHelper.h

00001 #ifndef MAIL_HELPER_H
00002 #define MAIL_HELPER_H
00003 
00004 #include "mbed.h"
00005 #include "cmsis.h"
00006 
00007 template<class T, unsigned int size>
00008 class MailHelper
00009 {
00010 public:
00011     MailHelper() {
00012 #ifdef CMSIS_OS_RTX
00013         memset(_q, 0, sizeof(_q));
00014         _ptr[0] = _q;
00015 
00016         memset(_m, 0, sizeof(_m));
00017         _ptr[1] = _m;
00018 
00019         _def.pool = _ptr;
00020         _def.item_sz = sizeof(T);
00021         _def.queue_sz = size;
00022 #endif
00023     };
00024 
00025     osMailQDef_t* def(void) { return &_def; }
00026 
00027 private:
00028     osMailQDef_t    _def;
00029 
00030 #ifdef CMSIS_OS_RTX
00031     uint32_t    _q[4+size];
00032     uint32_t    _m[3+((sizeof(T)+3)/4)*size];
00033     void*       _ptr[2];
00034 #endif
00035 };
00036 
00037 #endif  // MAIL_HELPER_H