libIEC61850  0.8.0
Open-source IEC 61850 MMS/GOOSE server and client library
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
filesystem.h
Go to the documentation of this file.
1 /*
2  * filesystem.h
3  *
4  * Copyright 2014 Michael Zillgith
5  *
6  * This file is part of libIEC61850.
7  *
8  * libIEC61850 is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * libIEC61850 is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
20  *
21  * See COPYING file for the complete license text.
22  */
23 
24 #ifndef FILESYSTEM_H_
25 #define FILESYSTEM_H_
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
42 typedef void* FileHandle;
43 typedef struct sDirectoryHandle* DirectoryHandle;
44 
45 #ifndef CONFIG_SYSTEM_FILE_SEPARATOR
46 #define CONFIG_SYSTEM_FILE_SEPARATOR '/'
47 #endif
48 
58 FileHandle
59 FileSystem_openFile(char* pathName, bool readWrite);
60 
75 int
76 FileSystem_readFile(FileHandle handle, uint8_t* buffer, int maxSize);
77 
83 void
84 FileSystem_closeFile(FileHandle handle);
85 
99 bool
100 FileSystem_getFileInfo(char* filename, uint32_t* fileSize, uint64_t* lastModificationTimestamp);
101 
109 bool
110 FileSystem_deleteFile(char* filename);
111 
120 bool
121 FileSystem_renameFile(char* oldFilename, char* newFilename);
122 
130 DirectoryHandle
131 FileSystem_openDirectory(char* directoryName);
132 
141 char*
142 FileSystem_readDirectory(DirectoryHandle directory, bool* isDirectory);
143 
144 
150 void
151 FileSystem_closeDirectory(DirectoryHandle directory);
152 
162 void
163 FileSystem_setBasePath(char* basePath);
164 
169 #ifdef __cplusplus
170 }
171 #endif
172 
173 #endif /* FILESYSTEM_H_ */