baseline build
Dependencies: FastPWM mbed-os mbed
DataContainer.h@0:8a420ac6394e, 2017-06-19 (annotated)
- Committer:
- jrhodes5150
- Date:
- Mon Jun 19 15:55:51 2017 +0000
- Revision:
- 0:8a420ac6394e
initial build - baseline;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jrhodes5150 | 0:8a420ac6394e | 1 | #ifndef __DATACONTAINER_H__ |
jrhodes5150 | 0:8a420ac6394e | 2 | #define __DATACONTAINER_H__ |
jrhodes5150 | 0:8a420ac6394e | 3 | |
jrhodes5150 | 0:8a420ac6394e | 4 | #include "mbed.h" |
jrhodes5150 | 0:8a420ac6394e | 5 | |
jrhodes5150 | 0:8a420ac6394e | 6 | |
jrhodes5150 | 0:8a420ac6394e | 7 | |
jrhodes5150 | 0:8a420ac6394e | 8 | class DataContainer |
jrhodes5150 | 0:8a420ac6394e | 9 | { |
jrhodes5150 | 0:8a420ac6394e | 10 | |
jrhodes5150 | 0:8a420ac6394e | 11 | |
jrhodes5150 | 0:8a420ac6394e | 12 | public: |
jrhodes5150 | 0:8a420ac6394e | 13 | |
jrhodes5150 | 0:8a420ac6394e | 14 | /** Create a DataContianer object |
jrhodes5150 | 0:8a420ac6394e | 15 | * |
jrhodes5150 | 0:8a420ac6394e | 16 | * @param iSize size of the object in DataContianer |
jrhodes5150 | 0:8a420ac6394e | 17 | * @param iCount number of items in the DataContianer |
jrhodes5150 | 0:8a420ac6394e | 18 | */ |
jrhodes5150 | 0:8a420ac6394e | 19 | DataContainer( int iSize, int iCount ); |
jrhodes5150 | 0:8a420ac6394e | 20 | |
jrhodes5150 | 0:8a420ac6394e | 21 | /** destruction |
jrhodes5150 | 0:8a420ac6394e | 22 | * |
jrhodes5150 | 0:8a420ac6394e | 23 | */ |
jrhodes5150 | 0:8a420ac6394e | 24 | virtual ~DataContainer( void ); |
jrhodes5150 | 0:8a420ac6394e | 25 | |
jrhodes5150 | 0:8a420ac6394e | 26 | /** Add item to queue |
jrhodes5150 | 0:8a420ac6394e | 27 | * |
jrhodes5150 | 0:8a420ac6394e | 28 | * @param pvItem item to add |
jrhodes5150 | 0:8a420ac6394e | 29 | * @returns true if item added, false if queue full |
jrhodes5150 | 0:8a420ac6394e | 30 | */ |
jrhodes5150 | 0:8a420ac6394e | 31 | bool Put( void* pvItem ); |
jrhodes5150 | 0:8a420ac6394e | 32 | |
jrhodes5150 | 0:8a420ac6394e | 33 | /** get an item from the queue in an IRQ handler |
jrhodes5150 | 0:8a420ac6394e | 34 | * |
jrhodes5150 | 0:8a420ac6394e | 35 | * @param pvItem pointer to the tiem to retrieve |
jrhodes5150 | 0:8a420ac6394e | 36 | * @returns true if item fetched, false if queue is empty |
jrhodes5150 | 0:8a420ac6394e | 37 | */ |
jrhodes5150 | 0:8a420ac6394e | 38 | bool GetIrq( void* pvItem ); |
jrhodes5150 | 0:8a420ac6394e | 39 | |
jrhodes5150 | 0:8a420ac6394e | 40 | /** Add item to queue from an IRQ handler |
jrhodes5150 | 0:8a420ac6394e | 41 | * |
jrhodes5150 | 0:8a420ac6394e | 42 | * @param pvItem item to add |
jrhodes5150 | 0:8a420ac6394e | 43 | * @returns true if item added, false if queue full |
jrhodes5150 | 0:8a420ac6394e | 44 | */ |
jrhodes5150 | 0:8a420ac6394e | 45 | bool PutIrq( void* pvItem ); |
jrhodes5150 | 0:8a420ac6394e | 46 | |
jrhodes5150 | 0:8a420ac6394e | 47 | /** get an item from the queue |
jrhodes5150 | 0:8a420ac6394e | 48 | * |
jrhodes5150 | 0:8a420ac6394e | 49 | * @param pvItem pointer to the tiem to retrieve |
jrhodes5150 | 0:8a420ac6394e | 50 | * @returns true if item fetched, false if queue is empty |
jrhodes5150 | 0:8a420ac6394e | 51 | */ |
jrhodes5150 | 0:8a420ac6394e | 52 | bool Get( void* pvItem ); |
jrhodes5150 | 0:8a420ac6394e | 53 | |
jrhodes5150 | 0:8a420ac6394e | 54 | /** get the number of items in the queue |
jrhodes5150 | 0:8a420ac6394e | 55 | * |
jrhodes5150 | 0:8a420ac6394e | 56 | * @returns the number of items in the queue |
jrhodes5150 | 0:8a420ac6394e | 57 | */ |
jrhodes5150 | 0:8a420ac6394e | 58 | int GetNumberOfItems( void ); |
jrhodes5150 | 0:8a420ac6394e | 59 | |
jrhodes5150 | 0:8a420ac6394e | 60 | /** peek at the entry at the top of the queue |
jrhodes5150 | 0:8a420ac6394e | 61 | * |
jrhodes5150 | 0:8a420ac6394e | 62 | * @returns the entry at the top of the queue |
jrhodes5150 | 0:8a420ac6394e | 63 | */ |
jrhodes5150 | 0:8a420ac6394e | 64 | bool Peek( void* pvItem ); |
jrhodes5150 | 0:8a420ac6394e | 65 | |
jrhodes5150 | 0:8a420ac6394e | 66 | /** flush the queue |
jrhodes5150 | 0:8a420ac6394e | 67 | * |
jrhodes5150 | 0:8a420ac6394e | 68 | */ |
jrhodes5150 | 0:8a420ac6394e | 69 | void Flush( void ); |
jrhodes5150 | 0:8a420ac6394e | 70 | |
jrhodes5150 | 0:8a420ac6394e | 71 | |
jrhodes5150 | 0:8a420ac6394e | 72 | protected: |
jrhodes5150 | 0:8a420ac6394e | 73 | int m_iSize; // size of each item in queue |
jrhodes5150 | 0:8a420ac6394e | 74 | int m_iCount; // number of items in the queue |
jrhodes5150 | 0:8a420ac6394e | 75 | unsigned char* m_pnHead; // pointer to the head of the queue |
jrhodes5150 | 0:8a420ac6394e | 76 | unsigned char* m_pnTail; // pointer to the tail of the queue |
jrhodes5150 | 0:8a420ac6394e | 77 | unsigned char* m_pnRdIndex; // read index |
jrhodes5150 | 0:8a420ac6394e | 78 | unsigned char* m_pnWrIndex; // write index |
jrhodes5150 | 0:8a420ac6394e | 79 | int m_iLclCount; // number of items in queue |
jrhodes5150 | 0:8a420ac6394e | 80 | }; |
jrhodes5150 | 0:8a420ac6394e | 81 | #endif |
jrhodes5150 | 0:8a420ac6394e | 82 |