]> git.gir.st - tmk_keyboard.git/blob - tool/mbed/mbed-sdk/libraries/mbed/api/FileBase.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[tmk_keyboard.git] / tool / mbed / mbed-sdk / libraries / mbed / api / FileBase.h
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_FILEBASE_H
17 #define MBED_FILEBASE_H
18
19 typedef int FILEHANDLE;
20
21 #include <stdio.h>
22
23 #if defined(__ARMCC_VERSION) || defined(__ICCARM__)
24 # define O_RDONLY 0
25 # define O_WRONLY 1
26 # define O_RDWR 2
27 # define O_CREAT 0x0200
28 # define O_TRUNC 0x0400
29 # define O_APPEND 0x0008
30
31 # define NAME_MAX 255
32
33 typedef int mode_t;
34 typedef int ssize_t;
35 typedef long off_t;
36
37 #else
38 # include <sys/fcntl.h>
39 # include <sys/types.h>
40 # include <sys/syslimits.h>
41 #endif
42
43 #include "platform.h"
44
45 namespace mbed {
46
47 typedef enum {
48 FilePathType,
49 FileSystemPathType
50 } PathType;
51
52 class FileBase {
53 public:
54 FileBase(const char *name, PathType t);
55
56 virtual ~FileBase();
57
58 const char* getName(void);
59 PathType getPathType(void);
60
61 static FileBase *lookup(const char *name, unsigned int len);
62
63 static FileBase *get(int n);
64
65 protected:
66 static FileBase *_head;
67
68 FileBase *_next;
69 const char *_name;
70 PathType _path_type;
71
72 /* disallow copy constructor and assignment operators */
73 private:
74 FileBase(const FileBase&);
75 FileBase & operator = (const FileBase&);
76 };
77
78 } // namespace mbed
79
80 #endif
Imprint / Impressum