Lab 1 Program C

Dependents:   Lab1C

Fork of mbed by -deleted-

Committer:
emilmont
Date:
Tue Nov 29 14:59:27 2011 +0000
Revision:
27:7110ebee3484
Parent:
11:1c1ebd0324fa
New Libraries 11.11

Who changed what in which revision?

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