test test test

Dependencies:   mbed

Committer:
mohamedmoawya
Date:
Mon May 25 19:06:11 2020 +0000
Revision:
0:e4c5e6ec922e
snake game tteest

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mohamedmoawya 0:e4c5e6ec922e 1 /* mbed Microcontroller Library
mohamedmoawya 0:e4c5e6ec922e 2 * Copyright (c) 2006-2013 ARM Limited
mohamedmoawya 0:e4c5e6ec922e 3 *
mohamedmoawya 0:e4c5e6ec922e 4 * Licensed under the Apache License, Version 2.0 (the "License");
mohamedmoawya 0:e4c5e6ec922e 5 * you may not use this file except in compliance with the License.
mohamedmoawya 0:e4c5e6ec922e 6 * You may obtain a copy of the License at
mohamedmoawya 0:e4c5e6ec922e 7 *
mohamedmoawya 0:e4c5e6ec922e 8 * http://www.apache.org/licenses/LICENSE-2.0
mohamedmoawya 0:e4c5e6ec922e 9 *
mohamedmoawya 0:e4c5e6ec922e 10 * Unless required by applicable law or agreed to in writing, software
mohamedmoawya 0:e4c5e6ec922e 11 * distributed under the License is distributed on an "AS IS" BASIS,
mohamedmoawya 0:e4c5e6ec922e 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mohamedmoawya 0:e4c5e6ec922e 13 * See the License for the specific language governing permissions and
mohamedmoawya 0:e4c5e6ec922e 14 * limitations under the License.
mohamedmoawya 0:e4c5e6ec922e 15 */
mohamedmoawya 0:e4c5e6ec922e 16 #ifndef MBED_STREAM_H
mohamedmoawya 0:e4c5e6ec922e 17 #define MBED_STREAM_H
mohamedmoawya 0:e4c5e6ec922e 18
mohamedmoawya 0:e4c5e6ec922e 19 #include "platform/platform.h"
mohamedmoawya 0:e4c5e6ec922e 20 #include "platform/FileLike.h"
mohamedmoawya 0:e4c5e6ec922e 21 #include "platform/FileHandle.h"
mohamedmoawya 0:e4c5e6ec922e 22 #include "platform/NonCopyable.h"
mohamedmoawya 0:e4c5e6ec922e 23 #include <cstdio>
mohamedmoawya 0:e4c5e6ec922e 24 #include <cstdarg>
mohamedmoawya 0:e4c5e6ec922e 25
mohamedmoawya 0:e4c5e6ec922e 26 namespace mbed {
mohamedmoawya 0:e4c5e6ec922e 27 /** \addtogroup platform */
mohamedmoawya 0:e4c5e6ec922e 28 /** @{*/
mohamedmoawya 0:e4c5e6ec922e 29 /**
mohamedmoawya 0:e4c5e6ec922e 30 * \defgroup platform_Stream Stream class
mohamedmoawya 0:e4c5e6ec922e 31 * @{
mohamedmoawya 0:e4c5e6ec922e 32 */
mohamedmoawya 0:e4c5e6ec922e 33
mohamedmoawya 0:e4c5e6ec922e 34 extern void mbed_set_unbuffered_stream(std::FILE *_file);
mohamedmoawya 0:e4c5e6ec922e 35 extern int mbed_getc(std::FILE *_file);
mohamedmoawya 0:e4c5e6ec922e 36 extern char *mbed_gets(char *s, int size, std::FILE *_file);
mohamedmoawya 0:e4c5e6ec922e 37
mohamedmoawya 0:e4c5e6ec922e 38 /** File stream
mohamedmoawya 0:e4c5e6ec922e 39 *
mohamedmoawya 0:e4c5e6ec922e 40 * @note Synchronization level: Set by subclass
mohamedmoawya 0:e4c5e6ec922e 41 */
mohamedmoawya 0:e4c5e6ec922e 42 class Stream : public FileLike, private NonCopyable<Stream> {
mohamedmoawya 0:e4c5e6ec922e 43
mohamedmoawya 0:e4c5e6ec922e 44 public:
mohamedmoawya 0:e4c5e6ec922e 45 Stream(const char *name = NULL);
mohamedmoawya 0:e4c5e6ec922e 46 virtual ~Stream();
mohamedmoawya 0:e4c5e6ec922e 47
mohamedmoawya 0:e4c5e6ec922e 48 int putc(int c);
mohamedmoawya 0:e4c5e6ec922e 49 int puts(const char *s);
mohamedmoawya 0:e4c5e6ec922e 50 int getc();
mohamedmoawya 0:e4c5e6ec922e 51 char *gets(char *s, int size);
mohamedmoawya 0:e4c5e6ec922e 52 int printf(const char *format, ...);
mohamedmoawya 0:e4c5e6ec922e 53 int scanf(const char *format, ...);
mohamedmoawya 0:e4c5e6ec922e 54 int vprintf(const char *format, std::va_list args);
mohamedmoawya 0:e4c5e6ec922e 55 int vscanf(const char *format, std::va_list args);
mohamedmoawya 0:e4c5e6ec922e 56
mohamedmoawya 0:e4c5e6ec922e 57 operator std::FILE *()
mohamedmoawya 0:e4c5e6ec922e 58 {
mohamedmoawya 0:e4c5e6ec922e 59 return _file;
mohamedmoawya 0:e4c5e6ec922e 60 }
mohamedmoawya 0:e4c5e6ec922e 61
mohamedmoawya 0:e4c5e6ec922e 62 protected:
mohamedmoawya 0:e4c5e6ec922e 63 virtual int close();
mohamedmoawya 0:e4c5e6ec922e 64 virtual ssize_t write(const void *buffer, size_t length);
mohamedmoawya 0:e4c5e6ec922e 65 virtual ssize_t read(void *buffer, size_t length);
mohamedmoawya 0:e4c5e6ec922e 66 virtual off_t seek(off_t offset, int whence);
mohamedmoawya 0:e4c5e6ec922e 67 virtual off_t tell();
mohamedmoawya 0:e4c5e6ec922e 68 virtual void rewind();
mohamedmoawya 0:e4c5e6ec922e 69 virtual int isatty();
mohamedmoawya 0:e4c5e6ec922e 70 virtual int sync();
mohamedmoawya 0:e4c5e6ec922e 71 virtual off_t size();
mohamedmoawya 0:e4c5e6ec922e 72
mohamedmoawya 0:e4c5e6ec922e 73 virtual int _putc(int c) = 0;
mohamedmoawya 0:e4c5e6ec922e 74 virtual int _getc() = 0;
mohamedmoawya 0:e4c5e6ec922e 75
mohamedmoawya 0:e4c5e6ec922e 76 std::FILE *_file;
mohamedmoawya 0:e4c5e6ec922e 77
mohamedmoawya 0:e4c5e6ec922e 78 /** Acquire exclusive access to this object.
mohamedmoawya 0:e4c5e6ec922e 79 */
mohamedmoawya 0:e4c5e6ec922e 80 virtual void lock()
mohamedmoawya 0:e4c5e6ec922e 81 {
mohamedmoawya 0:e4c5e6ec922e 82 // Stub
mohamedmoawya 0:e4c5e6ec922e 83 }
mohamedmoawya 0:e4c5e6ec922e 84
mohamedmoawya 0:e4c5e6ec922e 85 /** Release exclusive access to this object.
mohamedmoawya 0:e4c5e6ec922e 86 */
mohamedmoawya 0:e4c5e6ec922e 87 virtual void unlock()
mohamedmoawya 0:e4c5e6ec922e 88 {
mohamedmoawya 0:e4c5e6ec922e 89 // Stub
mohamedmoawya 0:e4c5e6ec922e 90 }
mohamedmoawya 0:e4c5e6ec922e 91 };
mohamedmoawya 0:e4c5e6ec922e 92 /**@}*/
mohamedmoawya 0:e4c5e6ec922e 93
mohamedmoawya 0:e4c5e6ec922e 94 /**@}*/
mohamedmoawya 0:e4c5e6ec922e 95 } // namespace mbed
mohamedmoawya 0:e4c5e6ec922e 96
mohamedmoawya 0:e4c5e6ec922e 97 #endif
mohamedmoawya 0:e4c5e6ec922e 98