From 2d7e0605a35ec55d320d04c5c5ae276796a8717b Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 15 Oct 2012 23:13:28 +0200 Subject: digital/ucoolib/ucoolib/intf: add stream interface --- digital/ucoolib/ucoolib/intf/stream.cc | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 digital/ucoolib/ucoolib/intf/stream.cc (limited to 'digital/ucoolib/ucoolib/intf/stream.cc') diff --git a/digital/ucoolib/ucoolib/intf/stream.cc b/digital/ucoolib/ucoolib/intf/stream.cc new file mode 100644 index 00000000..b3a28698 --- /dev/null +++ b/digital/ucoolib/ucoolib/intf/stream.cc @@ -0,0 +1,63 @@ +// ucoolib - Microcontroller object oriented library. {{{ +// +// Copyright (C) 2012 Nicolas Schodet +// +// APBTeam: +// Web: http://apbteam.org/ +// Email: team AT apbteam DOT org +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +// }}} +#include "stream.hh" + +namespace ucoo { + +Stream::Stream () + : block_ (false) +{ +} + +void +Stream::block (bool block/*true*/) +{ + block_ = block; +} + +int +Stream::getc () +{ + int r; + char c; + r = read (&c, 1); + if (r == 1) + return c; + else + return -1; +} + +int +Stream::putc (int c) +{ + int r; + char b = c; + r = write (&b, 1); + if (r == 1) + return 0; + else + return -1; +} + +} // namespace ucoo -- cgit v1.2.3