Adeon
Loading...
Searching...
No Matches
list.h
Go to the documentation of this file.
1
25#ifndef ADEON_LIST_H
26#define ADEON_LIST_H
27
28#include <Arduino.h>
29
30constexpr static auto LIST_ITEM_LENGTH = 16;
31
32class ItemList {
33 protected:
34 class Item;
35 ItemList();
36
37 public:
38 Item* addItem(const char* pId, uint16_t val);
39 void deleteItem(Item* pItem);
40 void deleteHead();
41 char* editItemId(Item* pItem, const char* pNewId);
42 void editItemVal(Item* pItem, uint16_t val);
43 Item* findItem(const char* pId);
44 bool isInList(Item* pItem);
45 bool isIdLenValid(const char* pId);
46 bool isListEmpty();
47 uint8_t getNumOfItems();
48 uint16_t getItemVal(Item* pItem);
49 void printData();
50
51 protected:
52 Item* _pHead = nullptr;
53 Item* _pLast = nullptr;
54 uint8_t _numOfItems = 0;
55
56 class Item {
57 public:
58 Item(const char* pId, uint16_t val);
59 void setPointToNextItem(Item* pItem);
61 void setPointToPrevItem(Item* pItem);
63 void saveId(const char* pSrc);
64
65 char* id;
66 uint16_t value = 0;
67 uint8_t accessRights = 1;
68 void (*_pCallback)(uint16_t) = nullptr;
69
70 private:
71 Item* _pNext = nullptr;
72 Item* _pPrev = nullptr;
73 };
74};
75
76#endif // ADEON_LIST_H
Item * getPointToNextItem()
Get pointer to next object.
Definition: list.cpp:241
void setPointToPrevItem(Item *pItem)
Set pointer to previous object.
Definition: list.cpp:249
void saveId(const char *pSrc)
Save id of an object.
Definition: list.cpp:265
void setPointToNextItem(Item *pItem)
Set pointer to next object.
Definition: list.cpp:233
Item * getPointToPrevItem()
Get pointer to next object.
Definition: list.cpp:257
Definition: list.h:32
void editItemVal(Item *pItem, uint16_t val)
Edit item value in a list.
Definition: list.cpp:128
bool isIdLenValid(const char *pId)
Check if lingth of id is valid.
Definition: list.cpp:171
bool isInList(Item *pItem)
Check if item is in a list.
Definition: list.cpp:162
void deleteItem(Item *pItem)
Delete item from a list.
Definition: list.cpp:72
Item * findItem(const char *pId)
Find item in a list.
Definition: list.cpp:142
void printData()
Print data from list to serial.
Definition: list.cpp:203
char * editItemId(Item *pItem, const char *pNewId)
Edit item id in a list.
Definition: list.cpp:113
uint16_t getItemVal(Item *pItem)
Get item value.
Definition: list.cpp:191
ItemList()
Empty constructor for the class ItemList.
Definition: list.cpp:30
uint8_t getNumOfItems()
Get number of item in a list.
Definition: list.cpp:183
Item * addItem(const char *pId, uint16_t val)
Add item into a list.
Definition: list.cpp:43
void deleteHead()
Delete head of list.
Definition: list.cpp:102