mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
emilmont
Date:
Mon Jun 10 16:03:00 2013 +0100
Revision:
9:0ce32e54c9a7
Parent:
cpp/FilePath.cpp@2:143cac498751
Child:
10:3bc89ef62ce7
Refactoring of the mbed SDK:
- Provide a well defined HAL and API
- Keep separated the HAL implementations for the different targets

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 2:143cac498751 1 /* mbed Microcontroller Library
emilmont 2:143cac498751 2 * Copyright (c) 2006-2013 ARM Limited
emilmont 2:143cac498751 3 *
emilmont 2:143cac498751 4 * Licensed under the Apache License, Version 2.0 (the "License");
emilmont 2:143cac498751 5 * you may not use this file except in compliance with the License.
emilmont 2:143cac498751 6 * You may obtain a copy of the License at
emilmont 2:143cac498751 7 *
emilmont 2:143cac498751 8 * http://www.apache.org/licenses/LICENSE-2.0
emilmont 2:143cac498751 9 *
emilmont 2:143cac498751 10 * Unless required by applicable law or agreed to in writing, software
emilmont 2:143cac498751 11 * distributed under the License is distributed on an "AS IS" BASIS,
emilmont 2:143cac498751 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
emilmont 2:143cac498751 13 * See the License for the specific language governing permissions and
emilmont 2:143cac498751 14 * limitations under the License.
emilmont 2:143cac498751 15 */
emilmont 2:143cac498751 16 #include "FilePath.h"
emilmont 2:143cac498751 17
emilmont 2:143cac498751 18 namespace mbed {
emilmont 2:143cac498751 19
emilmont 2:143cac498751 20 FilePath::FilePath(const char* file_path) : file_name(NULL), fb(NULL) {
emilmont 2:143cac498751 21 if ((file_path[0] != '/') || (file_path[1] == 0)) return;
emilmont 2:143cac498751 22
emilmont 2:143cac498751 23 const char* file_system = &file_path[1];
emilmont 2:143cac498751 24 file_name = file_system;
emilmont 2:143cac498751 25 int len = 0;
emilmont 2:143cac498751 26 while (true) {
emilmont 2:143cac498751 27 char c = *file_name;
emilmont 2:143cac498751 28 if (c == '/') { // end of object name
emilmont 2:143cac498751 29 file_name++; // point to one char after the '/'
emilmont 2:143cac498751 30 break;
emilmont 2:143cac498751 31 }
emilmont 2:143cac498751 32 if (c == 0) { // end of object name, with no filename
emilmont 2:143cac498751 33 break;
emilmont 2:143cac498751 34 }
emilmont 2:143cac498751 35 len++;
emilmont 2:143cac498751 36 file_name++;
emilmont 2:143cac498751 37 }
emilmont 2:143cac498751 38
emilmont 2:143cac498751 39 FileBase::lookup(file_system, len);
emilmont 2:143cac498751 40
emilmont 2:143cac498751 41
emilmont 2:143cac498751 42 fb = FileBase::lookup(file_system, len);
emilmont 2:143cac498751 43 }
emilmont 2:143cac498751 44
emilmont 2:143cac498751 45 const char* FilePath::fileName(void) {
emilmont 2:143cac498751 46 return file_name;
emilmont 2:143cac498751 47 }
emilmont 2:143cac498751 48
emilmont 2:143cac498751 49 bool FilePath::isFileSystem(void) {
emilmont 2:143cac498751 50 return (fb->getPathType() == FileSystemPathType);
emilmont 2:143cac498751 51 }
emilmont 2:143cac498751 52
emilmont 2:143cac498751 53 FileSystemLike* FilePath::fileSystem(void) {
emilmont 2:143cac498751 54 if (isFileSystem()) {
emilmont 2:143cac498751 55 return (FileSystemLike*)fb;
emilmont 2:143cac498751 56 }
emilmont 2:143cac498751 57 return NULL;
emilmont 2:143cac498751 58 }
emilmont 2:143cac498751 59
emilmont 2:143cac498751 60 bool FilePath::isFile(void) {
emilmont 2:143cac498751 61 return (fb->getPathType() == FilePathType);
emilmont 2:143cac498751 62 }
emilmont 2:143cac498751 63
emilmont 2:143cac498751 64 FileLike* FilePath::file(void) {
emilmont 2:143cac498751 65 if (isFile()) {
emilmont 2:143cac498751 66 return (FileLike*)fb;
emilmont 2:143cac498751 67 }
emilmont 2:143cac498751 68 return NULL;
emilmont 2:143cac498751 69 }
emilmont 2:143cac498751 70
emilmont 2:143cac498751 71 } // namespace mbed