File System Store Example
main_example_fsst.cpp@0:375857320a2e, 2018-11-11 (annotated)
- Committer:
- Offir Kochalsky
- Date:
- Sun Nov 11 14:14:39 2018 +0200
- Revision:
- 0:375857320a2e
- Child:
- 1:82aae36f032f
FileSystemStore example
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Offir Kochalsky |
0:375857320a2e | 1 | /* mbed Microcontroller Library |
Offir Kochalsky |
0:375857320a2e | 2 | * Copyright (c) 2018 ARM Limited |
Offir Kochalsky |
0:375857320a2e | 3 | * |
Offir Kochalsky |
0:375857320a2e | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
Offir Kochalsky |
0:375857320a2e | 5 | * you may not use this file except in compliance with the License. |
Offir Kochalsky |
0:375857320a2e | 6 | * You may obtain a copy of the License at |
Offir Kochalsky |
0:375857320a2e | 7 | * |
Offir Kochalsky |
0:375857320a2e | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
Offir Kochalsky |
0:375857320a2e | 9 | * |
Offir Kochalsky |
0:375857320a2e | 10 | * Unless required by applicable law or agreed to in writing, software |
Offir Kochalsky |
0:375857320a2e | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
Offir Kochalsky |
0:375857320a2e | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
Offir Kochalsky |
0:375857320a2e | 13 | * See the License for the specific language governing permissions and |
Offir Kochalsky |
0:375857320a2e | 14 | * limitations under the License. |
Offir Kochalsky |
0:375857320a2e | 15 | */ |
Offir Kochalsky |
0:375857320a2e | 16 | |
Offir Kochalsky |
0:375857320a2e | 17 | #include "BlockDevice.h" |
Offir Kochalsky |
0:375857320a2e | 18 | #include "FileSystem.h" |
Offir Kochalsky |
0:375857320a2e | 19 | #include "FileSystemStore.h" |
Offir Kochalsky |
0:375857320a2e | 20 | /* |
Offir Kochalsky |
0:375857320a2e | 21 | #include "mbed_error.h" |
Offir Kochalsky |
0:375857320a2e | 22 | #include <stdlib.h> |
Offir Kochalsky |
0:375857320a2e | 23 | */ |
Offir Kochalsky |
0:375857320a2e | 24 | using namespace mbed; |
Offir Kochalsky |
0:375857320a2e | 25 | |
Offir Kochalsky |
0:375857320a2e | 26 | #define EXAMPLE_VALUE_BUF_SIZE 64 |
Offir Kochalsky |
0:375857320a2e | 27 | #define EXAMPLE_KEY_SIZE 16 |
Offir Kochalsky |
0:375857320a2e | 28 | |
Offir Kochalsky |
0:375857320a2e | 29 | int main() |
Offir Kochalsky |
0:375857320a2e | 30 | { |
Offir Kochalsky |
0:375857320a2e | 31 | printf("\n--- Mbed OS FileSystemStore example ---\n"); |
Offir Kochalsky |
0:375857320a2e | 32 | |
Offir Kochalsky |
0:375857320a2e | 33 | BlockDevice *bd = BlockDevice::get_default_instance(); |
Offir Kochalsky |
0:375857320a2e | 34 | FileSystem *fs = FileSystem::get_default_instance(); |
Offir Kochalsky |
0:375857320a2e | 35 | |
Offir Kochalsky |
0:375857320a2e | 36 | char kv_value1[EXAMPLE_VALUE_BUF_SIZE] = {"value1value1value1value1value1value1"}; |
Offir Kochalsky |
0:375857320a2e | 37 | char kv_key1[16] = {"key1"}; |
Offir Kochalsky |
0:375857320a2e | 38 | char kv_value2[EXAMPLE_VALUE_BUF_SIZE] = {"value2value2value2value2value2value2"}; |
Offir Kochalsky |
0:375857320a2e | 39 | char kv_key2[16] = {"key2"}; |
Offir Kochalsky |
0:375857320a2e | 40 | char kv_buf[EXAMPLE_VALUE_BUF_SIZE] = {0}; |
Offir Kochalsky |
0:375857320a2e | 41 | int err = 0; |
Offir Kochalsky |
0:375857320a2e | 42 | size_t actual_size = 0; |
Offir Kochalsky |
0:375857320a2e | 43 | |
Offir Kochalsky |
0:375857320a2e | 44 | err = bd->init(); |
Offir Kochalsky |
0:375857320a2e | 45 | printf("bd.init -> %d\n", err); |
Offir Kochalsky |
0:375857320a2e | 46 | |
Offir Kochalsky |
0:375857320a2e | 47 | err = fs->mount(bd); |
Offir Kochalsky |
0:375857320a2e | 48 | if (err) { |
Offir Kochalsky |
0:375857320a2e | 49 | err = fs->reformat(bd); |
Offir Kochalsky |
0:375857320a2e | 50 | } |
Offir Kochalsky |
0:375857320a2e | 51 | |
Offir Kochalsky |
0:375857320a2e | 52 | FileSystemStore *fsst = new FileSystemStore(fs); |
Offir Kochalsky |
0:375857320a2e | 53 | |
Offir Kochalsky |
0:375857320a2e | 54 | err = fsst->init(); |
Offir Kochalsky |
0:375857320a2e | 55 | printf("fsst.init -> %d\n", err); |
Offir Kochalsky |
0:375857320a2e | 56 | |
Offir Kochalsky |
0:375857320a2e | 57 | err = fsst->reset(); |
Offir Kochalsky |
0:375857320a2e | 58 | printf("fsst.reset -> %d\n", err); |
Offir Kochalsky |
0:375857320a2e | 59 | |
Offir Kochalsky |
0:375857320a2e | 60 | /* Set (key1,val1) */ |
Offir Kochalsky |
0:375857320a2e | 61 | err = fsst->set(kv_key1, kv_value1, strlen(kv_value1), 0); |
Offir Kochalsky |
0:375857320a2e | 62 | printf("fsst.set %s -> %d\n", kv_key1, err); |
Offir Kochalsky |
0:375857320a2e | 63 | |
Offir Kochalsky |
0:375857320a2e | 64 | /* Set (key2,val2) */ |
Offir Kochalsky |
0:375857320a2e | 65 | err = fsst->set(kv_key2, kv_value2, strlen(kv_value2), 0); |
Offir Kochalsky |
0:375857320a2e | 66 | printf("fsst.set %s -> %d\n", kv_key2, err); |
Offir Kochalsky |
0:375857320a2e | 67 | |
Offir Kochalsky |
0:375857320a2e | 68 | /* Get key1 */ |
Offir Kochalsky |
0:375857320a2e | 69 | memset(kv_buf, 0, EXAMPLE_VALUE_BUF_SIZE); |
Offir Kochalsky |
0:375857320a2e | 70 | err = fsst->get(kv_key1, kv_buf, EXAMPLE_VALUE_BUF_SIZE, &actual_size, 0); |
Offir Kochalsky |
0:375857320a2e | 71 | printf("fsst.get %s -> %s\n", kv_key1, kv_buf); |
Offir Kochalsky |
0:375857320a2e | 72 | |
Offir Kochalsky |
0:375857320a2e | 73 | /* Get key2 */ |
Offir Kochalsky |
0:375857320a2e | 74 | memset(kv_buf, 0, EXAMPLE_VALUE_BUF_SIZE); |
Offir Kochalsky |
0:375857320a2e | 75 | err = fsst->get(kv_key2, kv_buf, EXAMPLE_VALUE_BUF_SIZE, &actual_size, 0); |
Offir Kochalsky |
0:375857320a2e | 76 | printf("fsst.get %s -> %s\n", kv_key2, kv_buf); |
Offir Kochalsky |
0:375857320a2e | 77 | |
Offir Kochalsky |
0:375857320a2e | 78 | err = fsst->reset(); |
Offir Kochalsky |
0:375857320a2e | 79 | printf("fsst.reset -> %d\n", err); |
Offir Kochalsky |
0:375857320a2e | 80 | |
Offir Kochalsky |
0:375857320a2e | 81 | err = fsst->deinit(); |
Offir Kochalsky |
0:375857320a2e | 82 | printf("fsst.deinit -> %d\n", err); |
Offir Kochalsky |
0:375857320a2e | 83 | |
Offir Kochalsky |
0:375857320a2e | 84 | err = bd->deinit(); |
Offir Kochalsky |
0:375857320a2e | 85 | printf("bd.deinit -> %d\n", err); |
Offir Kochalsky |
0:375857320a2e | 86 | |
Offir Kochalsky |
0:375857320a2e | 87 | return 0; |
Offir Kochalsky |
0:375857320a2e | 88 | } |
Offir Kochalsky |
0:375857320a2e | 89 |