File System Store Example

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?

UserRevisionLine numberNew 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