mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-22 21:23:07 +03:00
* WIP compile examples on host with 'make examples' * WIP bufferize tcp input * WIP Makefile * WIP network to rework, tcp/udp to factorize, udp addresses broken * minor changes to the core * WIP basic udp working * WIP mdns * WIP mcast receiving, not sending * WIP mdns OK * beta version * SSL + doc * update travis host test command * licenses * typo * doc: arduino builder is not around: declare functions before calling them * fix with latest SSL PR, compile in 32 bits mode * fix make clean * make -m32 optional * 32bits compiler ability tester * WIP * WIP (fix 1 vtable error, still another one to hunt with using spiffs) * example astyle * fix os_printf_plus * load / save mock spiffs * fix style * fix using spiffs/mock * don't mess ram * update doc * remove leftover * optimization -Os except for CI, rename ARCH32 to FORCE32 * revert useless cast (not even compiled) * remove unused function * use proper type for pointer arithmetics * makefile: sketch object and cpp file moved to bin/ directories easier to clean, and IDE don't like them * changes for review * make use of %zd * less verbose makefile by default (option) * update readme
81 lines
2.3 KiB
C++
81 lines
2.3 KiB
C++
/*
|
|
FSImpl.h - base file system interface
|
|
Copyright (c) 2015 Ivan Grokhotkov. All rights reserved.
|
|
This file is part of the esp8266 core for Arduino environment.
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
#ifndef FSIMPL_H
|
|
#define FSIMPL_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
namespace fs {
|
|
|
|
class FileImpl {
|
|
public:
|
|
virtual ~FileImpl() { }
|
|
virtual size_t write(const uint8_t *buf, size_t size) = 0;
|
|
virtual size_t read(uint8_t* buf, size_t size) = 0;
|
|
virtual void flush() = 0;
|
|
virtual bool seek(uint32_t pos, SeekMode mode) = 0;
|
|
virtual size_t position() const = 0;
|
|
virtual size_t size() const = 0;
|
|
virtual void close() = 0;
|
|
virtual const char* name() const = 0;
|
|
};
|
|
|
|
enum OpenMode {
|
|
OM_DEFAULT = 0,
|
|
OM_CREATE = 1,
|
|
OM_APPEND = 2,
|
|
OM_TRUNCATE = 4
|
|
};
|
|
|
|
enum AccessMode {
|
|
AM_READ = 1,
|
|
AM_WRITE = 2,
|
|
AM_RW = AM_READ | AM_WRITE
|
|
};
|
|
|
|
class DirImpl {
|
|
public:
|
|
virtual ~DirImpl() { }
|
|
virtual FileImplPtr openFile(OpenMode openMode, AccessMode accessMode) = 0;
|
|
virtual const char* fileName() = 0;
|
|
virtual size_t fileSize() = 0;
|
|
virtual bool next() = 0;
|
|
};
|
|
|
|
class FSImpl {
|
|
public:
|
|
virtual ~FSImpl () { }
|
|
virtual bool begin() = 0;
|
|
virtual void end() = 0;
|
|
virtual bool format() = 0;
|
|
virtual bool info(FSInfo& info) = 0;
|
|
virtual FileImplPtr open(const char* path, OpenMode openMode, AccessMode accessMode) = 0;
|
|
virtual bool exists(const char* path) = 0;
|
|
virtual DirImplPtr openDir(const char* path) = 0;
|
|
virtual bool rename(const char* pathFrom, const char* pathTo) = 0;
|
|
virtual bool remove(const char* path) = 0;
|
|
|
|
};
|
|
|
|
} // namespace fs
|
|
|
|
#endif //FSIMPL_H
|