Select one of the symbols to view example projects that use it.
 
Outline
#define nvs_pagemanager_hpp
#include <memory>
#include <list>
#include "nvs_types.hpp"
#include "nvs_page.hpp"
#include "partition.hpp"
#include "intrusive_list.h"
nvs
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/nvs_flash/src/nvs_pagemanager.hpp
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef nvs_pagemanager_hpp #define nvs_pagemanager_hpp #include <memory> #include <list> #include "nvs_types.hpp" #include "nvs_page.hpp" #include "partition.hpp" #include "intrusive_list.h"6 includes namespace nvs { class PageManager { using TPageList = intrusive_list<Page>; using TPageListIterator = TPageList::iterator; public: PageManager() {} esp_err_t load(Partition *partition, uint32_t baseSector, uint32_t sectorCount); TPageListIterator begin() { return mPageList.begin(); }{ ... } TPageListIterator end() { return mPageList.end(); }{ ... } Page& back() { return mPageList.back(); }{ ... } uint32_t getPageCount() { return mPageCount; }{ ... } esp_err_t requestNewPage(); esp_err_t fillStats(nvs_stats_t& nvsStats); uint32_t getBaseSector() { return mBaseSector; }{ ... } ...protected: friend class Iterator; esp_err_t activatePage(); TPageList mPageList; TPageList mFreePageList; std::unique_ptr<Page[]> mPages; uint32_t mBaseSector; uint32_t mPageCount; uint32_t mSeqNumber;... }{ ... }; // class PageManager }{...} // namespace nvs /* ... */ #endif /* nvs_pagemanager_hpp */
Details