A class for watching file descriptors. More...
#include <AsyncFdWatch.h>
The type of the file descriptor watch.
More...A class for watching file descriptors.
Use this class to watch a file descriptor for activity. The example below creates a read watch on the standard input file descriptor. That is, every time a character is typed on the keyboard (or something is piped to the application) the onActivity method in instance this of class MyClass will be called. In the handler function, the data on the file descriptor should be read. Otherwise the handler function will be called over and over again.
#include <unistd.h> #include <cstdio> #include <iostream> #include <AsyncCppApplication.h> #include <AsyncFdWatch.h> using namespace std; using namespace Async; class MyClass : public SigC::Object { public: MyClass(void) { stdin_watch = new FdWatch(STDIN_FILENO, FdWatch::FD_WATCH_RD); stdin_watch->activity.connect(slot(*this, &MyClass::onActivity)); } ~MyClass(void) { delete stdin_watch; } private: FdWatch *stdin_watch; void onActivity(FdWatch *watch) { char buf[1024]; int cnt = read(watch->fd(), buf, sizeof(buf)-1); if (cnt == -1) { perror("read"); Application::app().quit(); return; } buf[cnt] = 0; cout << "Read from STDIN: " << buf << endl; } }; int main(int argc, char **argv) { CppApplication app; MyClass my_class; app.exec(); }
Definition at line 119 of file AsyncFdWatch.h.
The type of the file descriptor watch.
FD_WATCH_RD |
File descriptor watch for incoming data. |
FD_WATCH_WR |
File descriptor watch for outgoing data. |
Definition at line 125 of file AsyncFdWatch.h.
Async::FdWatch::FdWatch | ( | int | fd, | |
FdWatchType | type | |||
) |
Constructor.
Add the given file descriptor to the watch list and watch it for incoming data (FD_WATCH_RD) or write buffer space available (FD_WATCH_WR).
fd | The file descriptor to watch | |
type | The type of watch to create (see FdWatchType) |
Async::FdWatch::~FdWatch | ( | void | ) |
Destructor.
int Async::FdWatch::fd | ( | void | ) | const [inline] |
Return the file descriptor being watched.
Definition at line 151 of file AsyncFdWatch.h.
bool Async::FdWatch::isEnabled | ( | void | ) | const [inline] |
Check if the watch is enabled or not.
Definition at line 170 of file AsyncFdWatch.h.
void Async::FdWatch::setEnabled | ( | bool | enabled | ) |
Enable or disable the watch.
enabled | Set to true to enable the watch or false to disable it. |
FdWatchType Async::FdWatch::type | ( | void | ) | const [inline] |
Return the type of this watch.
Definition at line 157 of file AsyncFdWatch.h.
SigC::Signal1<void, FdWatch*> Async::FdWatch::activity |
Signal to indicate that the descriptor is active.
watch | Pointer to the watch object |
Definition at line 176 of file AsyncFdWatch.h.