Lab 1 Program C

Dependents:   Lab1C

Fork of mbed by -deleted-

Committer:
simon.ford@mbed.co.uk
Date:
Tue Feb 03 18:02:02 2009 +0000
Revision:
8:00a04e5cd407
Parent:
4:5d1359a283bc
Child:
11:1c1ebd0324fa
* Update to improve filesystem support
* Add a generic FATFileSystem

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 8:00a04e5cd407 13 class Stream : public 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 8:00a04e5cd407 41 virtual const struct rpc_method *get_rpc_methods();
simon.ford@mbed.co.uk 8:00a04e5cd407 42
simon.ford@mbed.co.uk 0:82220227f4fa 43 protected:
simon.ford@mbed.co.uk 0:82220227f4fa 44
simon.ford@mbed.co.uk 4:5d1359a283bc 45 virtual int close();
simon.ford@mbed.co.uk 4:5d1359a283bc 46 virtual ssize_t write(const void* buffer, size_t length);
simon.ford@mbed.co.uk 4:5d1359a283bc 47 virtual ssize_t read(void* buffer, size_t length);
simon.ford@mbed.co.uk 4:5d1359a283bc 48 virtual off_t lseek(off_t offset, int whence);
simon.ford@mbed.co.uk 4:5d1359a283bc 49 virtual int isatty();
simon.ford@mbed.co.uk 4:5d1359a283bc 50 virtual int fsync();
simon.ford@mbed.co.uk 8:00a04e5cd407 51 virtual off_t flen();
simon.ford@mbed.co.uk 0:82220227f4fa 52
simon.ford@mbed.co.uk 4:5d1359a283bc 53 virtual int _putc(int c) = 0;
simon.ford@mbed.co.uk 4:5d1359a283bc 54 virtual int _getc() = 0;
simon.ford@mbed.co.uk 4:5d1359a283bc 55
simon.ford@mbed.co.uk 4:5d1359a283bc 56 std::FILE *_file;
simon.ford@mbed.co.uk 4:5d1359a283bc 57
simon.ford@mbed.co.uk 0:82220227f4fa 58 };
simon.ford@mbed.co.uk 0:82220227f4fa 59
simon.ford@mbed.co.uk 0:82220227f4fa 60 } // namespace mbed
simon.ford@mbed.co.uk 0:82220227f4fa 61
simon.ford@mbed.co.uk 1:6b7f447ca868 62 #endif
simon.ford@mbed.co.uk 1:6b7f447ca868 63