Lab 1 Program C
Fork of mbed by
Stream.h
- Committer:
- simon.ford@mbed.co.uk
- Date:
- 2009-02-03
- Revision:
- 8:00a04e5cd407
- Parent:
- 4:5d1359a283bc
- Child:
- 11:1c1ebd0324fa
File content as of revision 8:00a04e5cd407:
/* mbed Microcontroller Library - Stream * Copyright (c) 2007-2008, sford */ #ifndef MBED_STREAM_H #define MBED_STREAM_H #include "FileLike.h" #include <cstdio> namespace mbed { class Stream : public FileLike { public: Stream(const char *name = NULL); virtual ~Stream(); int putc(int c) { fflush(_file); return std::fputc(c, _file); } int puts(const char *s) { fflush(_file); return std::fputs(s, _file); } int getc() { fflush(_file); return std::fgetc(_file); } char *gets(char *s, int size) { fflush(_file); return std::fgets(s,size,_file);; } int printf(const char* format, ...); int scanf(const char* format, ...); operator std::FILE*() { return _file; } virtual const struct rpc_method *get_rpc_methods(); protected: virtual int close(); virtual ssize_t write(const void* buffer, size_t length); virtual ssize_t read(void* buffer, size_t length); virtual off_t lseek(off_t offset, int whence); virtual int isatty(); virtual int fsync(); virtual off_t flen(); virtual int _putc(int c) = 0; virtual int _getc() = 0; std::FILE *_file; }; } // namespace mbed #endif