takashi kadono / Mbed OS Nucleo_446

Dependencies:   ssd1331

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers FileBase.h Source File

FileBase.h

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 #ifndef MBED_FILEBASE_H
00017 #define MBED_FILEBASE_H
00018 
00019 typedef int FILEHANDLE;
00020 
00021 #include "platform/platform.h"
00022 #include "platform/SingletonPtr.h"
00023 #include "platform/PlatformMutex.h"
00024 #include "platform/NonCopyable.h"
00025 
00026 namespace mbed {
00027 
00028 typedef enum {
00029     FilePathType,
00030     FileSystemPathType
00031 } PathType;
00032 
00033 /** \addtogroup platform */
00034 /** @{*/
00035 /**
00036  * \defgroup platform_FileBase FileBase class
00037  * @{
00038  */
00039 /** Class FileBase
00040  *
00041  */
00042 
00043 class FileBase : private NonCopyable<FileBase> {
00044 public:
00045     FileBase(const char *name, PathType t);
00046     virtual ~FileBase();
00047 
00048     const char *getName(void);
00049     PathType    getPathType(void);
00050 
00051     static FileBase *lookup(const char *name, unsigned int len);
00052 
00053     static FileBase *get(int n);
00054 
00055     void set_as_default();
00056 
00057 private:
00058     static FileBase *_head;
00059     static FileBase *_default;
00060     static SingletonPtr<PlatformMutex>  _mutex;
00061 
00062     FileBase   *_next;
00063     const char *const _name;
00064     const PathType _path_type;
00065 };
00066 
00067 /**@}*/
00068 
00069 /**@}*/
00070 
00071 } // namespace mbed
00072 
00073 #endif
00074