Gleb Klochkov / Mbed OS Climatcontroll_Main

Dependencies:   esp8266-driver

Committer:
glebiuskv
Date:
Fri Apr 13 08:53:46 2018 +0000
Revision:
0:2f0e1e23c242
initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
glebiuskv 0:2f0e1e23c242 1 /* mbed Microcontroller Library
glebiuskv 0:2f0e1e23c242 2 * Copyright (c) 2015 ARM Limited
glebiuskv 0:2f0e1e23c242 3 *
glebiuskv 0:2f0e1e23c242 4 * Licensed under the Apache License, Version 2.0 (the "License");
glebiuskv 0:2f0e1e23c242 5 * you may not use this file except in compliance with the License.
glebiuskv 0:2f0e1e23c242 6 * You may obtain a copy of the License at
glebiuskv 0:2f0e1e23c242 7 *
glebiuskv 0:2f0e1e23c242 8 * http://www.apache.org/licenses/LICENSE-2.0
glebiuskv 0:2f0e1e23c242 9 *
glebiuskv 0:2f0e1e23c242 10 * Unless required by applicable law or agreed to in writing, software
glebiuskv 0:2f0e1e23c242 11 * distributed under the License is distributed on an "AS IS" BASIS,
glebiuskv 0:2f0e1e23c242 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
glebiuskv 0:2f0e1e23c242 13 * See the License for the specific language governing permissions and
glebiuskv 0:2f0e1e23c242 14 * limitations under the License.
glebiuskv 0:2f0e1e23c242 15 */
glebiuskv 0:2f0e1e23c242 16
glebiuskv 0:2f0e1e23c242 17 #include "File.h"
glebiuskv 0:2f0e1e23c242 18 #include "mbed.h"
glebiuskv 0:2f0e1e23c242 19 #include <errno.h>
glebiuskv 0:2f0e1e23c242 20
glebiuskv 0:2f0e1e23c242 21
glebiuskv 0:2f0e1e23c242 22 File::File()
glebiuskv 0:2f0e1e23c242 23 : _fs(0), _file(0)
glebiuskv 0:2f0e1e23c242 24 {
glebiuskv 0:2f0e1e23c242 25 }
glebiuskv 0:2f0e1e23c242 26
glebiuskv 0:2f0e1e23c242 27 File::File(FileSystem *fs, const char *path, int flags)
glebiuskv 0:2f0e1e23c242 28 : _fs(0), _file(0)
glebiuskv 0:2f0e1e23c242 29 {
glebiuskv 0:2f0e1e23c242 30 open(fs, path, flags);
glebiuskv 0:2f0e1e23c242 31 }
glebiuskv 0:2f0e1e23c242 32
glebiuskv 0:2f0e1e23c242 33 File::~File()
glebiuskv 0:2f0e1e23c242 34 {
glebiuskv 0:2f0e1e23c242 35 if (_fs) {
glebiuskv 0:2f0e1e23c242 36 close();
glebiuskv 0:2f0e1e23c242 37 }
glebiuskv 0:2f0e1e23c242 38 }
glebiuskv 0:2f0e1e23c242 39
glebiuskv 0:2f0e1e23c242 40 int File::open(FileSystem *fs, const char *path, int flags)
glebiuskv 0:2f0e1e23c242 41 {
glebiuskv 0:2f0e1e23c242 42 if (_fs) {
glebiuskv 0:2f0e1e23c242 43 return -EINVAL;
glebiuskv 0:2f0e1e23c242 44 }
glebiuskv 0:2f0e1e23c242 45
glebiuskv 0:2f0e1e23c242 46 int err = fs->file_open(&_file, path, flags);
glebiuskv 0:2f0e1e23c242 47 if (!err) {
glebiuskv 0:2f0e1e23c242 48 _fs = fs;
glebiuskv 0:2f0e1e23c242 49 }
glebiuskv 0:2f0e1e23c242 50
glebiuskv 0:2f0e1e23c242 51 return err;
glebiuskv 0:2f0e1e23c242 52 }
glebiuskv 0:2f0e1e23c242 53
glebiuskv 0:2f0e1e23c242 54 int File::close()
glebiuskv 0:2f0e1e23c242 55 {
glebiuskv 0:2f0e1e23c242 56 if (!_fs) {
glebiuskv 0:2f0e1e23c242 57 return -EINVAL;
glebiuskv 0:2f0e1e23c242 58 }
glebiuskv 0:2f0e1e23c242 59
glebiuskv 0:2f0e1e23c242 60 int err = _fs->file_close(_file);
glebiuskv 0:2f0e1e23c242 61 _fs = 0;
glebiuskv 0:2f0e1e23c242 62 return err;
glebiuskv 0:2f0e1e23c242 63 }
glebiuskv 0:2f0e1e23c242 64
glebiuskv 0:2f0e1e23c242 65 ssize_t File::read(void *buffer, size_t len)
glebiuskv 0:2f0e1e23c242 66 {
glebiuskv 0:2f0e1e23c242 67 MBED_ASSERT(_fs);
glebiuskv 0:2f0e1e23c242 68 return _fs->file_read(_file, buffer, len);
glebiuskv 0:2f0e1e23c242 69 }
glebiuskv 0:2f0e1e23c242 70
glebiuskv 0:2f0e1e23c242 71 ssize_t File::write(const void *buffer, size_t len)
glebiuskv 0:2f0e1e23c242 72 {
glebiuskv 0:2f0e1e23c242 73 MBED_ASSERT(_fs);
glebiuskv 0:2f0e1e23c242 74 return _fs->file_write(_file, buffer, len);
glebiuskv 0:2f0e1e23c242 75 }
glebiuskv 0:2f0e1e23c242 76
glebiuskv 0:2f0e1e23c242 77 int File::sync()
glebiuskv 0:2f0e1e23c242 78 {
glebiuskv 0:2f0e1e23c242 79 MBED_ASSERT(_fs);
glebiuskv 0:2f0e1e23c242 80 return _fs->file_sync(_file);
glebiuskv 0:2f0e1e23c242 81 }
glebiuskv 0:2f0e1e23c242 82
glebiuskv 0:2f0e1e23c242 83 int File::isatty()
glebiuskv 0:2f0e1e23c242 84 {
glebiuskv 0:2f0e1e23c242 85 MBED_ASSERT(_fs);
glebiuskv 0:2f0e1e23c242 86 return _fs->file_isatty(_file);
glebiuskv 0:2f0e1e23c242 87 }
glebiuskv 0:2f0e1e23c242 88
glebiuskv 0:2f0e1e23c242 89 off_t File::seek(off_t offset, int whence)
glebiuskv 0:2f0e1e23c242 90 {
glebiuskv 0:2f0e1e23c242 91 MBED_ASSERT(_fs);
glebiuskv 0:2f0e1e23c242 92 return _fs->file_seek(_file, offset, whence);
glebiuskv 0:2f0e1e23c242 93 }
glebiuskv 0:2f0e1e23c242 94
glebiuskv 0:2f0e1e23c242 95 off_t File::tell()
glebiuskv 0:2f0e1e23c242 96 {
glebiuskv 0:2f0e1e23c242 97 MBED_ASSERT(_fs);
glebiuskv 0:2f0e1e23c242 98 return _fs->file_tell(_file);
glebiuskv 0:2f0e1e23c242 99 }
glebiuskv 0:2f0e1e23c242 100
glebiuskv 0:2f0e1e23c242 101 void File::rewind()
glebiuskv 0:2f0e1e23c242 102 {
glebiuskv 0:2f0e1e23c242 103 MBED_ASSERT(_fs);
glebiuskv 0:2f0e1e23c242 104 return _fs->file_rewind(_file);
glebiuskv 0:2f0e1e23c242 105 }
glebiuskv 0:2f0e1e23c242 106
glebiuskv 0:2f0e1e23c242 107 off_t File::size()
glebiuskv 0:2f0e1e23c242 108 {
glebiuskv 0:2f0e1e23c242 109 MBED_ASSERT(_fs);
glebiuskv 0:2f0e1e23c242 110 return _fs->file_size(_file);
glebiuskv 0:2f0e1e23c242 111 }
glebiuskv 0:2f0e1e23c242 112