From 4b7d0fbade1fbd7ef751182a3923ed883f394855 Mon Sep 17 00:00:00 2001 From: shatty Date: Sun, 1 Feb 2004 05:51:17 +0000 Subject: [PATCH] simple BLooper to run an AddOnMonitorHandler git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6457 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/storage/AddOnMonitor.cpp | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/kits/storage/AddOnMonitor.cpp diff --git a/src/kits/storage/AddOnMonitor.cpp b/src/kits/storage/AddOnMonitor.cpp new file mode 100644 index 0000000000..99d4fec3cc --- /dev/null +++ b/src/kits/storage/AddOnMonitor.cpp @@ -0,0 +1,53 @@ +#include "AddOnMonitor.h" +#include "AddOnMonitorHandler.h" +#include +#include +#include +#include + +AddOnMonitor::AddOnMonitor(AddOnMonitorHandler * handler) + : BLooper("AddOnMonitor") +{ + fInitCheck = B_NO_INIT; + AddHandler(handler); + SetPreferredHandler(handler); + status_t status; + BMessenger messenger(handler, this, &status); + if (status != B_OK) { + fInitCheck = status; + return; + } + if (!messenger.IsValid()) { + fInitCheck = B_ERROR; + return; + } + fPulseMessage = new BMessage(B_PULSE); + fPulseRunner = new BMessageRunner(messenger, fPulseMessage, 1000000); + status = fPulseRunner->InitCheck(); + if (status != B_OK) { + fInitCheck = status; + return; + } + thread_id id = Run(); + if (id < 0) { + fInitCheck = (status_t)id; + return; + } + fInitCheck = B_OK; + return; +} + + +/* virtual */ +AddOnMonitor::~AddOnMonitor() +{ + delete fPulseMessage; + delete fPulseRunner; +} + + +/* virtual */ status_t +AddOnMonitor::InitCheck() +{ + return fInitCheck; +}