]> git.tdb.fi Git - libs/core.git/blob - source/base.cpp
Drop copyright and license notices from files
[libs/core.git] / source / base.cpp
1 #include "base.h"
2 #include "poll.h"
3
4 using namespace std;
5
6 namespace Msp {
7 namespace IO {
8
9 bool Base::getline(string &line)
10 {
11         line.clear();
12
13         if(eof_flag)
14                 return false;
15
16         while(1)
17         {
18                 int c = get();
19                 if(c==-1 || c=='\n')
20                         break;
21                 line += c;
22         }
23
24         return !eof_flag || !line.empty();
25 }
26
27 int Base::get()
28 {
29         char c;
30         if(do_read(&c, 1)==0)
31                 return -1;
32         return static_cast<unsigned char>(c);
33 }
34
35 void Base::event(PollEvent ev)
36 {
37         if(ev&P_INPUT)
38                 signal_data_available.emit();
39
40         on_event(ev);
41 }
42
43 Base::~Base()
44 {
45         signal_deleted.emit();
46 }
47
48 Base::Base():
49         mode(M_READ),
50         events(P_NONE),
51         eof_flag(false)
52 { }
53
54 void Base::set_events(PollEvent e)
55 {
56         events = e;
57         signal_events_changed.emit(events);
58 }
59
60 } // namespace IO
61 } // namespace Msp