RTC auf true

Committer:
kevman
Date:
Wed Mar 13 11:03:24 2019 +0000
Revision:
2:7aab896b1a3b
Parent:
0:38ceb79fef03
2019-03-13

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevman 0:38ceb79fef03 1 /* mbed Microcontroller Library
kevman 0:38ceb79fef03 2 * Copyright (c) 2015 ARM Limited
kevman 0:38ceb79fef03 3 *
kevman 0:38ceb79fef03 4 * Licensed under the Apache License, Version 2.0 (the "License");
kevman 0:38ceb79fef03 5 * you may not use this file except in compliance with the License.
kevman 0:38ceb79fef03 6 * You may obtain a copy of the License at
kevman 0:38ceb79fef03 7 *
kevman 0:38ceb79fef03 8 * http://www.apache.org/licenses/LICENSE-2.0
kevman 0:38ceb79fef03 9 *
kevman 0:38ceb79fef03 10 * Unless required by applicable law or agreed to in writing, software
kevman 0:38ceb79fef03 11 * distributed under the License is distributed on an "AS IS" BASIS,
kevman 0:38ceb79fef03 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kevman 0:38ceb79fef03 13 * See the License for the specific language governing permissions and
kevman 0:38ceb79fef03 14 * limitations under the License.
kevman 0:38ceb79fef03 15 */
kevman 0:38ceb79fef03 16
kevman 0:38ceb79fef03 17 #ifndef DIR_H
kevman 0:38ceb79fef03 18 #define DIR_H
kevman 0:38ceb79fef03 19
kevman 0:38ceb79fef03 20 #include "filesystem/FileSystem.h"
kevman 0:38ceb79fef03 21 #include "platform/DirHandle.h"
kevman 0:38ceb79fef03 22
kevman 0:38ceb79fef03 23 namespace mbed {
kevman 0:38ceb79fef03 24 /** \addtogroup filesystem */
kevman 0:38ceb79fef03 25 /** @{*/
kevman 0:38ceb79fef03 26
kevman 0:38ceb79fef03 27
kevman 0:38ceb79fef03 28 /** Dir class
kevman 0:38ceb79fef03 29 */
kevman 0:38ceb79fef03 30 class Dir : public DirHandle {
kevman 0:38ceb79fef03 31 public:
kevman 0:38ceb79fef03 32 /** Create an uninitialized directory
kevman 0:38ceb79fef03 33 *
kevman 0:38ceb79fef03 34 * Must call open to initialize the directory on a file system
kevman 0:38ceb79fef03 35 */
kevman 0:38ceb79fef03 36 Dir();
kevman 0:38ceb79fef03 37
kevman 0:38ceb79fef03 38 /** Open a directory on a filesystem
kevman 0:38ceb79fef03 39 *
kevman 0:38ceb79fef03 40 * @param fs Filesystem as target for a directory
kevman 0:38ceb79fef03 41 * @param path Name of the directory to open
kevman 0:38ceb79fef03 42 */
kevman 0:38ceb79fef03 43 Dir(FileSystem *fs, const char *path);
kevman 0:38ceb79fef03 44
kevman 0:38ceb79fef03 45 /** Destroy a file
kevman 0:38ceb79fef03 46 *
kevman 0:38ceb79fef03 47 * Closes file if the file is still open
kevman 0:38ceb79fef03 48 */
kevman 0:38ceb79fef03 49 virtual ~Dir();
kevman 0:38ceb79fef03 50
kevman 0:38ceb79fef03 51 /** Open a directory on the filesystem
kevman 0:38ceb79fef03 52 *
kevman 0:38ceb79fef03 53 * @param fs Filesystem as target for a directory
kevman 0:38ceb79fef03 54 * @param path Name of the directory to open
kevman 0:38ceb79fef03 55 * @return 0 on success, negative error code on failure
kevman 0:38ceb79fef03 56 */
kevman 0:38ceb79fef03 57 virtual int open(FileSystem *fs, const char *path);
kevman 0:38ceb79fef03 58
kevman 0:38ceb79fef03 59 /** Close a directory
kevman 0:38ceb79fef03 60 *
kevman 0:38ceb79fef03 61 * @return 0 on success, negative error code on failure
kevman 0:38ceb79fef03 62 */
kevman 0:38ceb79fef03 63 virtual int close();
kevman 0:38ceb79fef03 64
kevman 0:38ceb79fef03 65 /** Read the next directory entry
kevman 0:38ceb79fef03 66 *
kevman 0:38ceb79fef03 67 * @param ent The directory entry to fill out
kevman 0:38ceb79fef03 68 * @return 1 on reading a filename, 0 at end of directory, negative error on failure
kevman 0:38ceb79fef03 69 */
kevman 0:38ceb79fef03 70 virtual ssize_t read(struct dirent *ent);
kevman 0:38ceb79fef03 71
kevman 0:38ceb79fef03 72 /** Set the current position of the directory
kevman 0:38ceb79fef03 73 *
kevman 0:38ceb79fef03 74 * @param offset Offset of the location to seek to,
kevman 0:38ceb79fef03 75 * must be a value returned from tell
kevman 0:38ceb79fef03 76 */
kevman 0:38ceb79fef03 77 virtual void seek(off_t offset);
kevman 0:38ceb79fef03 78
kevman 0:38ceb79fef03 79 /** Get the current position of the directory
kevman 0:38ceb79fef03 80 *
kevman 0:38ceb79fef03 81 * @return Position of the directory that can be passed to rewind
kevman 0:38ceb79fef03 82 */
kevman 0:38ceb79fef03 83 virtual off_t tell();
kevman 0:38ceb79fef03 84
kevman 0:38ceb79fef03 85 /** Rewind the current position to the beginning of the directory
kevman 0:38ceb79fef03 86 */
kevman 0:38ceb79fef03 87 virtual void rewind();
kevman 0:38ceb79fef03 88
kevman 0:38ceb79fef03 89 /** Get the sizeof the directory
kevman 0:38ceb79fef03 90 *
kevman 0:38ceb79fef03 91 * @return Number of files in the directory
kevman 0:38ceb79fef03 92 */
kevman 0:38ceb79fef03 93 virtual size_t size();
kevman 0:38ceb79fef03 94
kevman 0:38ceb79fef03 95 private:
kevman 0:38ceb79fef03 96 FileSystem *_fs;
kevman 0:38ceb79fef03 97 fs_dir_t _dir;
kevman 0:38ceb79fef03 98 };
kevman 0:38ceb79fef03 99
kevman 0:38ceb79fef03 100
kevman 0:38ceb79fef03 101 /** @}*/
kevman 0:38ceb79fef03 102 } // namespace mbed
kevman 0:38ceb79fef03 103
kevman 0:38ceb79fef03 104 #endif