From 0a1eb226fbce35ed5875f8041124785b7808a909 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 24 Jan 2005 01:31:02 +0000 Subject: [PATCH] Start the messaging service. Due to missing kernel functionality the initialization still fails. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10998 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/registrar/Registrar.cpp | 23 ++++++++++++++++++++++- src/servers/registrar/Registrar.h | 2 ++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/servers/registrar/Registrar.cpp b/src/servers/registrar/Registrar.cpp index bcfeaea11b..a204bf4bdb 100644 --- a/src/servers/registrar/Registrar.cpp +++ b/src/servers/registrar/Registrar.cpp @@ -15,6 +15,7 @@ #include "EventQueue.h" #include "MessageEvent.h" #include "MessageRunnerManager.h" +#include "MessagingService.h" #include "MIMEManager.h" #include "Registrar.h" #include "TRoster.h" @@ -46,7 +47,8 @@ Registrar::Registrar(status_t *error) fMIMEManager(NULL), fEventQueue(NULL), fMessageRunnerManager(NULL), - fSanityEvent(NULL) + fSanityEvent(NULL), + fMessagingService(NULL) { FUNCTION_START(); } @@ -62,6 +64,7 @@ Registrar::~Registrar() FUNCTION_START(); Lock(); fEventQueue->Die(); + delete fMessagingService; delete fMessageRunnerManager; delete fEventQueue; delete fSanityEvent; @@ -212,26 +215,44 @@ void Registrar::ReadyToRun() { FUNCTION_START(); + // create event queue fEventQueue = new EventQueue(kEventQueueName); + // create roster fRoster = new TRoster; fRoster->Init(); + // create clipboard handler fClipboardHandler = new ClipboardHandler; AddHandler(fClipboardHandler); + // create MIME manager fMIMEManager = new MIMEManager; fMIMEManager->Run(); + // create message runner manager fMessageRunnerManager = new MessageRunnerManager(fEventQueue); + // init the global be_roster BRoster::Private().SetTo(be_app_messenger, BMessenger(NULL, fMIMEManager)); + + // create the messaging service + fMessagingService = new MessagingService; + status_t error = fMessagingService->Init(); + if (error != B_OK) { + ERROR(("Registrar::ReadyToRun(): Failed to init messaging service " + "(that's by design when running under R5): %s\n", strerror(error))); + delete fMessagingService; + fMessagingService = NULL; + } + // create and schedule the sanity message event fSanityEvent = new MessageEvent(system_time() + kRosterSanityEventInterval, this, B_REG_ROSTER_SANITY_EVENT); fSanityEvent->SetAutoDelete(false); fEventQueue->AddEvent(fSanityEvent); + FUNCTION_END(); } diff --git a/src/servers/registrar/Registrar.h b/src/servers/registrar/Registrar.h index b78a18f4f1..1a12b1ac3f 100644 --- a/src/servers/registrar/Registrar.h +++ b/src/servers/registrar/Registrar.h @@ -33,6 +33,7 @@ class DiskDeviceManager; class EventQueue; class MessageEvent; class MessageRunnerManager; +class MessagingService; class MIMEManager; namespace BPrivate { @@ -59,6 +60,7 @@ private: EventQueue *fEventQueue; MessageRunnerManager *fMessageRunnerManager; MessageEvent *fSanityEvent; + MessagingService *fMessagingService; }; #endif // REGISTRAR_H