From 3f82d4f1d24d199d2a6013e63b302422ec32ee56 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 1 Feb 2003 21:39:22 +0000 Subject: [PATCH] Added a DiskDeviceManager to the registrar. Does nothing for now, but will soon be the one responsible for the disk device functionality in the registrar. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2620 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/registrar/DiskDeviceManager.cpp | 37 +++++++++++++++++++++ src/servers/registrar/DiskDeviceManager.h | 19 +++++++++++ src/servers/registrar/Jamfile | 1 + src/servers/registrar/Registrar.cpp | 16 +++++++++ src/servers/registrar/Registrar.h | 2 ++ 5 files changed, 75 insertions(+) create mode 100644 src/servers/registrar/DiskDeviceManager.cpp create mode 100644 src/servers/registrar/DiskDeviceManager.h diff --git a/src/servers/registrar/DiskDeviceManager.cpp b/src/servers/registrar/DiskDeviceManager.cpp new file mode 100644 index 0000000000..cb37391c14 --- /dev/null +++ b/src/servers/registrar/DiskDeviceManager.cpp @@ -0,0 +1,37 @@ +//---------------------------------------------------------------------- +// This software is part of the OpenBeOS distribution and is covered +// by the OpenBeOS license. +//--------------------------------------------------------------------- + +#include + +#include "DiskDeviceManager.h" + +// constructor +DiskDeviceManager::DiskDeviceManager() + : BLooper("disk device manager") +{ +} + +// destructor +DiskDeviceManager::~DiskDeviceManager() +{ +} + +// MessageReceived +void +DiskDeviceManager::MessageReceived(BMessage *message) +{ + switch (message->what) { + case B_REG_NEXT_DISK_DEVICE: + case B_REG_GET_DISK_DEVICE: + case B_REG_UPDATE_DISK_DEVICE: + case B_REG_DEVICE_START_WATCHING: + case B_REG_DEVICE_STOP_WATCHING: + break; + default: + BLooper::MessageReceived(message); + break; + } +} + diff --git a/src/servers/registrar/DiskDeviceManager.h b/src/servers/registrar/DiskDeviceManager.h new file mode 100644 index 0000000000..0c92994144 --- /dev/null +++ b/src/servers/registrar/DiskDeviceManager.h @@ -0,0 +1,19 @@ +//---------------------------------------------------------------------- +// This software is part of the OpenBeOS distribution and is covered +// by the OpenBeOS license. +//--------------------------------------------------------------------- + +#ifndef DISK_DEVICE_MANAGER_H +#define DISK_DEVICE_MANAGER_H + +#include + +class DiskDeviceManager : public BLooper { +public: + DiskDeviceManager(); + virtual ~DiskDeviceManager(); + + virtual void MessageReceived(BMessage *message); +}; + +#endif // DISK_DEVICE_MANAGER_H diff --git a/src/servers/registrar/Jamfile b/src/servers/registrar/Jamfile index d5398cf64e..cc5612d365 100644 --- a/src/servers/registrar/Jamfile +++ b/src/servers/registrar/Jamfile @@ -8,6 +8,7 @@ Server obos_registrar : AppInfoList.cpp ClipboardHandler.cpp ClipboardTree.cpp + DiskDeviceManager.cpp Event.cpp EventMaskWatcher.cpp EventQueue.cpp diff --git a/src/servers/registrar/Registrar.cpp b/src/servers/registrar/Registrar.cpp index fc0a686b1f..5d85d1b460 100644 --- a/src/servers/registrar/Registrar.cpp +++ b/src/servers/registrar/Registrar.cpp @@ -8,6 +8,7 @@ #include #include "ClipboardHandler.h" +#include "DiskDeviceManager.h" #include "EventQueue.h" #include "MessageEvent.h" #include "MessageRunnerManager.h" @@ -36,6 +37,7 @@ Registrar::Registrar() fRoster(NULL), fClipboardHandler(NULL), fMIMEManager(NULL), + fDiskDeviceManager(NULL), fEventQueue(NULL), fMessageRunnerManager(NULL), fSanityEvent(NULL) @@ -57,6 +59,8 @@ Registrar::~Registrar() delete fMessageRunnerManager; delete fEventQueue; delete fSanityEvent; + fDiskDeviceManager->Lock(); + fDiskDeviceManager->Quit(); fMIMEManager->Lock(); fMIMEManager->Quit(); RemoveHandler(fClipboardHandler); @@ -97,6 +101,15 @@ Registrar::MessageReceived(BMessage *message) message->SendReply(&reply); break; } + case B_REG_GET_DISK_DEVICE_MESSENGER: + { + PRINT(("B_REG_GET_DISK_DEVICE_MESSENGER\n")); + BMessenger messenger(NULL, fDiskDeviceManager); + BMessage reply(B_REG_SUCCESS); + reply.AddMessenger("messenger", messenger); + message->SendReply(&reply); + break; + } // roster requests case B_REG_ADD_APP: fRoster->HandleAddApplication(message); @@ -213,6 +226,9 @@ Registrar::ReadyToRun() // create MIME manager fMIMEManager = new MIMEManager; fMIMEManager->Run(); + // create disk device manager + fDiskDeviceManager = new DiskDeviceManager; + fDiskDeviceManager->Run(); // create message runner manager fEventQueue = new EventQueue(kEventQueueName); fMessageRunnerManager = new MessageRunnerManager(fEventQueue); diff --git a/src/servers/registrar/Registrar.h b/src/servers/registrar/Registrar.h index 1d701ec923..ab40a1de6b 100644 --- a/src/servers/registrar/Registrar.h +++ b/src/servers/registrar/Registrar.h @@ -29,6 +29,7 @@ #include class ClipboardHandler; +class DiskDeviceManager; class EventQueue; class MessageEvent; class MessageRunnerManager; @@ -55,6 +56,7 @@ private: BPrivate::TRoster *fRoster; ClipboardHandler *fClipboardHandler; MIMEManager *fMIMEManager; + DiskDeviceManager *fDiskDeviceManager; EventQueue *fEventQueue; MessageRunnerManager *fMessageRunnerManager; MessageEvent *fSanityEvent;