1 // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 #include "nvs_handle_locked.hpp"
15
16 namespace nvs {
17
NVSHandleLocked(NVSHandleSimple * handle)18 NVSHandleLocked::NVSHandleLocked(NVSHandleSimple *handle) : handle(handle) {
19 Lock::init();
20 }
21
~NVSHandleLocked()22 NVSHandleLocked::~NVSHandleLocked() {
23 Lock lock;
24 delete handle;
25 }
26
set_string(const char * key,const char * str)27 esp_err_t NVSHandleLocked::set_string(const char *key, const char* str) {
28 Lock lock;
29 return handle->set_string(key, str);
30 }
31
set_blob(const char * key,const void * blob,size_t len)32 esp_err_t NVSHandleLocked::set_blob(const char *key, const void* blob, size_t len) {
33 Lock lock;
34 return handle->set_blob(key, blob, len);
35 }
36
get_string(const char * key,char * out_str,size_t len)37 esp_err_t NVSHandleLocked::get_string(const char *key, char* out_str, size_t len) {
38 Lock lock;
39 return handle->get_string(key, out_str, len);
40 }
41
get_blob(const char * key,void * out_blob,size_t len)42 esp_err_t NVSHandleLocked::get_blob(const char *key, void* out_blob, size_t len) {
43 Lock lock;
44 return handle->get_blob(key, out_blob, len);
45 }
46
get_item_size(ItemType datatype,const char * key,size_t & size)47 esp_err_t NVSHandleLocked::get_item_size(ItemType datatype, const char *key, size_t &size) {
48 Lock lock;
49 return handle->get_item_size(datatype, key, size);
50 }
51
erase_item(const char * key)52 esp_err_t NVSHandleLocked::erase_item(const char* key) {
53 Lock lock;
54 return handle->erase_item(key);
55 }
56
erase_all()57 esp_err_t NVSHandleLocked::erase_all() {
58 Lock lock;
59 return handle->erase_all();
60 }
61
commit()62 esp_err_t NVSHandleLocked::commit() {
63 Lock lock;
64 return handle->commit();
65 }
66
get_used_entry_count(size_t & usedEntries)67 esp_err_t NVSHandleLocked::get_used_entry_count(size_t& usedEntries) {
68 Lock lock;
69 return handle->get_used_entry_count(usedEntries);
70 }
71
set_typed_item(ItemType datatype,const char * key,const void * data,size_t dataSize)72 esp_err_t NVSHandleLocked::set_typed_item(ItemType datatype, const char *key, const void* data, size_t dataSize) {
73 Lock lock;
74 return handle->set_typed_item(datatype, key, data, dataSize);
75 }
76
get_typed_item(ItemType datatype,const char * key,void * data,size_t dataSize)77 esp_err_t NVSHandleLocked::get_typed_item(ItemType datatype, const char *key, void* data, size_t dataSize) {
78 Lock lock;
79 return handle->get_typed_item(datatype, key, data, dataSize);
80 }
81
82 } // namespace nvs
83