Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of gr-peach-opencv-project-sd-card by
Stream.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_STREAM_H 00017 #define MBED_STREAM_H 00018 00019 #include "platform/platform.h" 00020 #include "platform/FileLike.h" 00021 #include "platform/FileHandle.h" 00022 #include <cstdio> 00023 #include <cstdarg> 00024 00025 namespace mbed { 00026 /** \addtogroup platform */ 00027 /** @{*/ 00028 00029 extern void mbed_set_unbuffered_stream(std::FILE *_file); 00030 extern int mbed_getc(std::FILE *_file); 00031 extern char* mbed_gets(char *s, int size, std::FILE *_file); 00032 /** @}*/ 00033 00034 /** File stream 00035 * 00036 * @note Synchronization level: Set by subclass 00037 * @ingroup platform 00038 */ 00039 class Stream : public FileLike { 00040 00041 public: 00042 Stream(const char *name=NULL); 00043 virtual ~Stream(); 00044 00045 int putc(int c); 00046 int puts(const char *s); 00047 int getc(); 00048 char *gets(char *s, int size); 00049 int printf(const char* format, ...); 00050 int scanf(const char* format, ...); 00051 int vprintf(const char* format, std::va_list args); 00052 int vscanf(const char* format, std::va_list args); 00053 00054 operator std::FILE*() {return _file;} 00055 00056 protected: 00057 virtual int close(); 00058 virtual ssize_t write(const void* buffer, size_t length); 00059 virtual ssize_t read(void* buffer, size_t length); 00060 virtual off_t seek(off_t offset, int whence); 00061 virtual off_t tell(); 00062 virtual void rewind(); 00063 virtual int isatty(); 00064 virtual int sync(); 00065 virtual off_t size(); 00066 00067 virtual int _putc(int c) = 0; 00068 virtual int _getc() = 0; 00069 00070 std::FILE *_file; 00071 00072 /** Acquire exclusive access to this object. 00073 */ 00074 virtual void lock() { 00075 // Stub 00076 } 00077 00078 /** Release exclusive access to this object. 00079 */ 00080 virtual void unlock() { 00081 // Stub 00082 } 00083 00084 /* disallow copy constructor and assignment operators */ 00085 private: 00086 Stream(const Stream&); 00087 Stream & operator = (const Stream&); 00088 }; 00089 00090 } // namespace mbed 00091 00092 #endif 00093 00094
Generated on Tue Jul 12 2022 14:47:39 by
