test

Dependencies:   mbed Watchdog

Dependents:   STM32-MC_node

Committer:
ommpy
Date:
Mon Jul 06 17:18:59 2020 +0530
Revision:
0:d383e2dee0f7
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ommpy 0:d383e2dee0f7 1 /* mbed Microcontroller Library
ommpy 0:d383e2dee0f7 2 * Copyright (c) 2006-2013 ARM Limited
ommpy 0:d383e2dee0f7 3 * SPDX-License-Identifier: Apache-2.0
ommpy 0:d383e2dee0f7 4 *
ommpy 0:d383e2dee0f7 5 * Licensed under the Apache License, Version 2.0 (the "License");
ommpy 0:d383e2dee0f7 6 * you may not use this file except in compliance with the License.
ommpy 0:d383e2dee0f7 7 * You may obtain a copy of the License at
ommpy 0:d383e2dee0f7 8 *
ommpy 0:d383e2dee0f7 9 * http://www.apache.org/licenses/LICENSE-2.0
ommpy 0:d383e2dee0f7 10 *
ommpy 0:d383e2dee0f7 11 * Unless required by applicable law or agreed to in writing, software
ommpy 0:d383e2dee0f7 12 * distributed under the License is distributed on an "AS IS" BASIS,
ommpy 0:d383e2dee0f7 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ommpy 0:d383e2dee0f7 14 * See the License for the specific language governing permissions and
ommpy 0:d383e2dee0f7 15 * limitations under the License.
ommpy 0:d383e2dee0f7 16 */
ommpy 0:d383e2dee0f7 17 #ifndef MBED_FILESYSTEMHANDLE_H
ommpy 0:d383e2dee0f7 18 #define MBED_FILESYSTEMHANDLE_H
ommpy 0:d383e2dee0f7 19
ommpy 0:d383e2dee0f7 20 #include "platform/platform.h"
ommpy 0:d383e2dee0f7 21
ommpy 0:d383e2dee0f7 22 #include "platform/FileBase.h"
ommpy 0:d383e2dee0f7 23 #include "platform/FileHandle.h"
ommpy 0:d383e2dee0f7 24 #include "platform/DirHandle.h"
ommpy 0:d383e2dee0f7 25 #include "platform/NonCopyable.h"
ommpy 0:d383e2dee0f7 26
ommpy 0:d383e2dee0f7 27 namespace mbed {
ommpy 0:d383e2dee0f7 28 /** \addtogroup platform */
ommpy 0:d383e2dee0f7 29 /** @{*/
ommpy 0:d383e2dee0f7 30 /**
ommpy 0:d383e2dee0f7 31 * \defgroup platform_FileSystemHandle FileSystemHandle functions
ommpy 0:d383e2dee0f7 32 * @{
ommpy 0:d383e2dee0f7 33 */
ommpy 0:d383e2dee0f7 34
ommpy 0:d383e2dee0f7 35
ommpy 0:d383e2dee0f7 36 /** A filesystem-like object is one that can be used to open file-like
ommpy 0:d383e2dee0f7 37 * objects though it by fopen("/name/filename", mode)
ommpy 0:d383e2dee0f7 38 *
ommpy 0:d383e2dee0f7 39 * Implementations must define at least open (the default definitions
ommpy 0:d383e2dee0f7 40 * of the rest of the functions just return error values).
ommpy 0:d383e2dee0f7 41 *
ommpy 0:d383e2dee0f7 42 * @note Synchronization level: Set by subclass
ommpy 0:d383e2dee0f7 43 */
ommpy 0:d383e2dee0f7 44 class FileSystemHandle : private NonCopyable<FileSystemHandle> {
ommpy 0:d383e2dee0f7 45 public:
ommpy 0:d383e2dee0f7 46 /** FileSystemHandle lifetime
ommpy 0:d383e2dee0f7 47 */
ommpy 0:d383e2dee0f7 48 virtual ~FileSystemHandle() {}
ommpy 0:d383e2dee0f7 49
ommpy 0:d383e2dee0f7 50 /** Open a file on the filesystem
ommpy 0:d383e2dee0f7 51 *
ommpy 0:d383e2dee0f7 52 * @param file Destination for the handle to a newly created file
ommpy 0:d383e2dee0f7 53 * @param filename The name of the file to open
ommpy 0:d383e2dee0f7 54 * @param flags The flags to open the file in, one of O_RDONLY, O_WRONLY, O_RDWR,
ommpy 0:d383e2dee0f7 55 * bitwise or'd with one of O_CREAT, O_TRUNC, O_APPEND
ommpy 0:d383e2dee0f7 56 * @return 0 on success, negative error code on failure
ommpy 0:d383e2dee0f7 57 */
ommpy 0:d383e2dee0f7 58 virtual int open(FileHandle **file, const char *filename, int flags) = 0;
ommpy 0:d383e2dee0f7 59
ommpy 0:d383e2dee0f7 60 /** Open a directory on the filesystem
ommpy 0:d383e2dee0f7 61 *
ommpy 0:d383e2dee0f7 62 * @param dir Destination for the handle to the directory
ommpy 0:d383e2dee0f7 63 * @param path Name of the directory to open
ommpy 0:d383e2dee0f7 64 * @return 0 on success, negative error code on failure
ommpy 0:d383e2dee0f7 65 */
ommpy 0:d383e2dee0f7 66 virtual int open(DirHandle **dir, const char *path);
ommpy 0:d383e2dee0f7 67
ommpy 0:d383e2dee0f7 68 /** Remove a file from the filesystem.
ommpy 0:d383e2dee0f7 69 *
ommpy 0:d383e2dee0f7 70 * @param path The name of the file to remove.
ommpy 0:d383e2dee0f7 71 * @return 0 on success, negative error code on failure
ommpy 0:d383e2dee0f7 72 */
ommpy 0:d383e2dee0f7 73 virtual int remove(const char *path);
ommpy 0:d383e2dee0f7 74
ommpy 0:d383e2dee0f7 75 /** Rename a file in the filesystem.
ommpy 0:d383e2dee0f7 76 *
ommpy 0:d383e2dee0f7 77 * @param path The name of the file to rename.
ommpy 0:d383e2dee0f7 78 * @param newpath The name to rename it to
ommpy 0:d383e2dee0f7 79 * @return 0 on success, negative error code on failure
ommpy 0:d383e2dee0f7 80 */
ommpy 0:d383e2dee0f7 81 virtual int rename(const char *path, const char *newpath);
ommpy 0:d383e2dee0f7 82
ommpy 0:d383e2dee0f7 83 /** Store information about the file in a stat structure
ommpy 0:d383e2dee0f7 84 *
ommpy 0:d383e2dee0f7 85 * @param path The name of the file to find information about
ommpy 0:d383e2dee0f7 86 * @param st The stat buffer to write to
ommpy 0:d383e2dee0f7 87 * @return 0 on success, negative error code on failure
ommpy 0:d383e2dee0f7 88 */
ommpy 0:d383e2dee0f7 89 virtual int stat(const char *path, struct stat *st);
ommpy 0:d383e2dee0f7 90
ommpy 0:d383e2dee0f7 91 /** Create a directory in the filesystem.
ommpy 0:d383e2dee0f7 92 *
ommpy 0:d383e2dee0f7 93 * @param path The name of the directory to create.
ommpy 0:d383e2dee0f7 94 * @param mode The permissions with which to create the directory
ommpy 0:d383e2dee0f7 95 * @return 0 on success, negative error code on failure
ommpy 0:d383e2dee0f7 96 */
ommpy 0:d383e2dee0f7 97 virtual int mkdir(const char *path, mode_t mode);
ommpy 0:d383e2dee0f7 98
ommpy 0:d383e2dee0f7 99 /** Store information about the mounted filesystem in a statvfs structure
ommpy 0:d383e2dee0f7 100 *
ommpy 0:d383e2dee0f7 101 * @param path The name of the file to find information about
ommpy 0:d383e2dee0f7 102 * @param buf The stat buffer to write to
ommpy 0:d383e2dee0f7 103 * @return 0 on success, negative error code on failure
ommpy 0:d383e2dee0f7 104 */
ommpy 0:d383e2dee0f7 105 virtual int statvfs(const char *path, struct statvfs *buf);
ommpy 0:d383e2dee0f7 106 };
ommpy 0:d383e2dee0f7 107 /**@}*/
ommpy 0:d383e2dee0f7 108
ommpy 0:d383e2dee0f7 109 /**@}*/
ommpy 0:d383e2dee0f7 110
ommpy 0:d383e2dee0f7 111 } // namespace mbed
ommpy 0:d383e2dee0f7 112
ommpy 0:d383e2dee0f7 113 #endif