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.
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 "drivers/FileLike.h" 00021 #include "drivers/FileHandle.h" 00022 #include <cstdarg> 00023 00024 namespace mbed { 00025 /** \addtogroup drivers */ 00026 /** @{*/ 00027 00028 extern void mbed_set_unbuffered_stream(FILE *_file); 00029 extern int mbed_getc(FILE *_file); 00030 extern char* mbed_gets(char *s, int size, FILE *_file); 00031 00032 /** File stream 00033 * 00034 * @Note Synchronization level: Set by subclass 00035 */ 00036 class Stream : public FileLike { 00037 00038 public: 00039 Stream(const char *name=NULL); 00040 virtual ~Stream(); 00041 00042 int putc(int c); 00043 int puts(const char *s); 00044 int getc(); 00045 char *gets(char *s, int size); 00046 int printf(const char* format, ...); 00047 int scanf(const char* format, ...); 00048 int vprintf(const char* format, std::va_list args); 00049 int vscanf(const char* format, std::va_list args); 00050 00051 operator std::FILE*() {return _file;} 00052 00053 protected: 00054 virtual int close(); 00055 virtual ssize_t write(const void* buffer, size_t length); 00056 virtual ssize_t read(void* buffer, size_t length); 00057 virtual off_t seek(off_t offset, int whence); 00058 virtual off_t tell(); 00059 virtual void rewind(); 00060 virtual int isatty(); 00061 virtual int sync(); 00062 virtual size_t size(); 00063 00064 virtual int _putc(int c) = 0; 00065 virtual int _getc() = 0; 00066 00067 std::FILE *_file; 00068 00069 /* disallow copy constructor and assignment operators */ 00070 private: 00071 Stream(const Stream&); 00072 Stream & operator = (const Stream&); 00073 }; 00074 00075 } // namespace mbed 00076 00077 #endif 00078 00079 /** @}*/
Generated on Tue Jul 12 2022 17:41:25 by
