Naze32 clone with Frysky receiver
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FileSystemLike.h 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /* mbed Microcontroller Library
  2. * Copyright (c) 2006-2013 ARM Limited
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #ifndef MBED_FILESYSTEMLIKE_H
  17. #define MBED_FILESYSTEMLIKE_H
  18. #include "platform.h"
  19. #include "FileBase.h"
  20. #include "FileHandle.h"
  21. #include "DirHandle.h"
  22. namespace mbed {
  23. /** A filesystem-like object is one that can be used to open files
  24. * though it by fopen("/name/filename", mode)
  25. *
  26. * Implementations must define at least open (the default definitions
  27. * of the rest of the functions just return error values).
  28. */
  29. class FileSystemLike : public FileBase {
  30. public:
  31. /** FileSystemLike constructor
  32. *
  33. * @param name The name to use for the filesystem.
  34. */
  35. FileSystemLike(const char *name);
  36. virtual ~FileSystemLike();
  37. static DirHandle *opendir();
  38. friend class BaseDirHandle;
  39. /** Opens a file from the filesystem
  40. *
  41. * @param filename The name of the file to open.
  42. * @param flags One of O_RDONLY, O_WRONLY, or O_RDWR, OR'd with
  43. * zero or more of O_CREAT, O_TRUNC, or O_APPEND.
  44. *
  45. * @returns
  46. * A pointer to a FileHandle object representing the
  47. * file on success, or NULL on failure.
  48. */
  49. virtual FileHandle *open(const char *filename, int flags) = 0;
  50. /** Remove a file from the filesystem.
  51. *
  52. * @param filename the name of the file to remove.
  53. * @param returns 0 on success, -1 on failure.
  54. */
  55. virtual int remove(const char *filename) { return -1; };
  56. /** Rename a file in the filesystem.
  57. *
  58. * @param oldname the name of the file to rename.
  59. * @param newname the name to rename it to.
  60. *
  61. * @returns
  62. * 0 on success,
  63. * -1 on failure.
  64. */
  65. virtual int rename(const char *oldname, const char *newname) { return -1; };
  66. /** Opens a directory in the filesystem and returns a DirHandle
  67. * representing the directory stream.
  68. *
  69. * @param name The name of the directory to open.
  70. *
  71. * @returns
  72. * A DirHandle representing the directory stream, or
  73. * NULL on failure.
  74. */
  75. virtual DirHandle *opendir(const char *name) { return NULL; };
  76. /** Creates a directory in the filesystem.
  77. *
  78. * @param name The name of the directory to create.
  79. * @param mode The permissions to create the directory with.
  80. *
  81. * @returns
  82. * 0 on success,
  83. * -1 on failure.
  84. */
  85. virtual int mkdir(const char *name, mode_t mode) { return -1; }
  86. // TODO other filesystem functions (mkdir, rm, rn, ls etc)
  87. };
  88. } // namespace mbed
  89. #endif