mbed libraries for KL25Z

Dependents:   FRDM_RGBLED

Stream.h

Committer:
emilmont
Date:
2012-11-09
Revision:
8:c14af7958ef5
Parent:
7:73c5efe92a6c
Child:
9:663789d7729f

File content as of revision 8:c14af7958ef5:

/* mbed Microcontroller Library - Stream
 * Copyright (c) 2007-2009 ARM Limited. All rights reserved.
 */
#ifndef MBED_STREAM_H
#define MBED_STREAM_H

#include "platform.h"
#include "FileHandle.h"

namespace mbed {

class Stream : public FileHandle {

public:
    Stream(void);
    virtual ~Stream();

    int putc(int c);
    int puts(const char *s);
    int getc();
    char *gets(char *s, int size);
    int printf(const char* format, ...);
    int scanf(const char* format, ...);
    
    operator std::FILE*() {return _file;}

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