]> git.tdb.fi Git - libs/core.git/blob - source/base.cpp
Rename error.h to except.h
[libs/core.git] / source / base.cpp
1 /* $Id$
2
3 This file is part of libmspio
4 Copyright © 2007 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7 #include "base.h"
8 #include "poll.h"
9
10 using namespace std;
11
12 #include <iostream>
13
14 namespace Msp {
15 namespace IO {
16
17 bool Base::getline(string &line)
18 {
19         line.clear();
20
21         if(eof_flag)
22                 return false;
23
24         while(1)
25         {
26                 int c=get();
27                 if(c==-1 || c=='\n')
28                         break;
29                 line+=c;
30         }
31
32         return !eof_flag || !line.empty();
33 }
34
35 int Base::get()
36 {
37         char c;
38         if(do_read(&c, 1)==0)
39                 return -1;
40         return static_cast<unsigned char>(c);
41 }
42
43 void Base::event(PollEvent ev)
44 {
45         if(ev&P_INPUT)
46                 signal_data_available.emit();
47
48         on_event(ev);
49 }
50
51 Base::~Base()
52 {
53         signal_deleted.emit();
54 }
55
56 Base::Base():
57         mode(M_READ),
58         events(P_NONE),
59         eof_flag(false)
60 { }
61
62 void Base::set_events(PollEvent e)
63 {
64         //cout<<"object "<<this<<" set_events "<<e<<'\n';
65         events=e;
66         signal_events_changed.emit(events);
67 }
68
69 } // namespace IO
70 } // namespace Msp