...

Dependents:   2doejemplo Labo_TRSE_Drone

Fork of mbed by mbed official

Committer:
simon.ford@mbed.co.uk
Date:
Thu Nov 27 16:23:24 2008 +0000
Revision:
4:5d1359a283bc
Parent:
1:6b7f447ca868
Child:
8:00a04e5cd407
New version of framework: vectors, environment, platform, base and file system

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon.ford@mbed.co.uk 0:82220227f4fa 1 /* mbed Microcontroller Library - Stream
simon.ford@mbed.co.uk 0:82220227f4fa 2 * Copyright (c) 2007-2008, sford
simon.ford@mbed.co.uk 0:82220227f4fa 3 */
simon.ford@mbed.co.uk 0:82220227f4fa 4
simon.ford@mbed.co.uk 0:82220227f4fa 5 #ifndef MBED_STREAM_H
simon.ford@mbed.co.uk 0:82220227f4fa 6 #define MBED_STREAM_H
simon.ford@mbed.co.uk 0:82220227f4fa 7
simon.ford@mbed.co.uk 4:5d1359a283bc 8 #include "FileLike.h"
simon.ford@mbed.co.uk 4:5d1359a283bc 9 #include <cstdio>
simon.ford@mbed.co.uk 0:82220227f4fa 10
simon.ford@mbed.co.uk 0:82220227f4fa 11 namespace mbed {
simon.ford@mbed.co.uk 0:82220227f4fa 12
simon.ford@mbed.co.uk 4:5d1359a283bc 13 class Stream : protected FileLike {
simon.ford@mbed.co.uk 0:82220227f4fa 14
simon.ford@mbed.co.uk 0:82220227f4fa 15 public:
simon.ford@mbed.co.uk 4:5d1359a283bc 16
simon.ford@mbed.co.uk 4:5d1359a283bc 17 Stream(const char *name = NULL);
simon.ford@mbed.co.uk 4:5d1359a283bc 18 virtual ~Stream();
simon.ford@mbed.co.uk 0:82220227f4fa 19
simon.ford@mbed.co.uk 4:5d1359a283bc 20 int putc(int c) {
simon.ford@mbed.co.uk 4:5d1359a283bc 21 fflush(_file);
simon.ford@mbed.co.uk 4:5d1359a283bc 22 return std::fputc(c, _file);
simon.ford@mbed.co.uk 4:5d1359a283bc 23 }
simon.ford@mbed.co.uk 4:5d1359a283bc 24 int puts(const char *s) {
simon.ford@mbed.co.uk 4:5d1359a283bc 25 fflush(_file);
simon.ford@mbed.co.uk 4:5d1359a283bc 26 return std::fputs(s, _file);
simon.ford@mbed.co.uk 4:5d1359a283bc 27 }
simon.ford@mbed.co.uk 4:5d1359a283bc 28 int getc() {
simon.ford@mbed.co.uk 4:5d1359a283bc 29 fflush(_file);
simon.ford@mbed.co.uk 4:5d1359a283bc 30 return std::fgetc(_file);
simon.ford@mbed.co.uk 4:5d1359a283bc 31 }
simon.ford@mbed.co.uk 4:5d1359a283bc 32 char *gets(char *s, int size) {
simon.ford@mbed.co.uk 4:5d1359a283bc 33 fflush(_file);
simon.ford@mbed.co.uk 4:5d1359a283bc 34 return std::fgets(s,size,_file);;
simon.ford@mbed.co.uk 4:5d1359a283bc 35 }
simon.ford@mbed.co.uk 0:82220227f4fa 36 int printf(const char* format, ...);
simon.ford@mbed.co.uk 0:82220227f4fa 37 int scanf(const char* format, ...);
simon.ford@mbed.co.uk 4:5d1359a283bc 38
simon.ford@mbed.co.uk 4:5d1359a283bc 39 operator std::FILE*() { return _file; }
simon.ford@mbed.co.uk 4:5d1359a283bc 40
simon.ford@mbed.co.uk 0:82220227f4fa 41 protected:
simon.ford@mbed.co.uk 0:82220227f4fa 42
simon.ford@mbed.co.uk 4:5d1359a283bc 43 virtual int close();
simon.ford@mbed.co.uk 4:5d1359a283bc 44 virtual ssize_t write(const void* buffer, size_t length);
simon.ford@mbed.co.uk 4:5d1359a283bc 45 virtual ssize_t read(void* buffer, size_t length);
simon.ford@mbed.co.uk 4:5d1359a283bc 46 virtual off_t lseek(off_t offset, int whence);
simon.ford@mbed.co.uk 4:5d1359a283bc 47 virtual int isatty();
simon.ford@mbed.co.uk 4:5d1359a283bc 48 virtual int fsync();
simon.ford@mbed.co.uk 0:82220227f4fa 49
simon.ford@mbed.co.uk 4:5d1359a283bc 50 virtual int _putc(int c) = 0;
simon.ford@mbed.co.uk 4:5d1359a283bc 51 virtual int _getc() = 0;
simon.ford@mbed.co.uk 4:5d1359a283bc 52
simon.ford@mbed.co.uk 4:5d1359a283bc 53 std::FILE *_file;
simon.ford@mbed.co.uk 4:5d1359a283bc 54
simon.ford@mbed.co.uk 0:82220227f4fa 55 };
simon.ford@mbed.co.uk 0:82220227f4fa 56
simon.ford@mbed.co.uk 0:82220227f4fa 57 } // namespace mbed
simon.ford@mbed.co.uk 0:82220227f4fa 58
simon.ford@mbed.co.uk 1:6b7f447ca868 59 #endif
simon.ford@mbed.co.uk 1:6b7f447ca868 60