Initialize the global be_roster for the registrar.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1129 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2002-09-23 19:46:15 +00:00
parent bbe7fb5430
commit afac6ebecb
2 changed files with 27 additions and 0 deletions
headers/os/app
src/servers/registrar

@ -45,6 +45,11 @@ extern "C" int _delete_roster_();
status_t _send_to_roster_(BMessage *message, BMessage *reply, bool mime);
bool _is_valid_roster_mess_(bool mime);
namespace BPrivate {
void init_registrar_roster(BMessenger mainMessenger,
BMessenger mimeMessenger);
}
/*-------------------------------------------------------------*/
/* --------- app_info Struct and Values ------------------------ */
@ -155,6 +160,7 @@ private:
friend status_t BMimeType::StopWatching(BMessenger);
friend status_t BClipboard::StartWatching(BMessenger);
friend status_t BClipboard::StopWatching(BMessenger);
friend void BPrivate::init_registrar_roster(BMessenger, BMessenger);
enum mtarget {
MAIN_MESSENGER,

@ -128,6 +128,9 @@ Registrar::ReadyToRun()
// create MIME manager
fMIMEManager = new MIMEManager;
fMIMEManager->Run();
// init the global be_roster
BPrivate::init_registrar_roster(be_app_messenger,
BMessenger(NULL, fMIMEManager));
FUNCTION_END();
}
@ -143,6 +146,24 @@ Registrar::QuitRequested()
return BApplication::QuitRequested();
}
// init_registrar_roster
/*! \brief Initializes the global \a be_roster.
While this is done automagically for all other applications while libbe
initialization, the registrar needs to help out a bit.
\param mainMessenger A BMessenger targeting the registrar application.
\param mimeMessenger A BMessenger targeting the MIME manager.
*/
void
BPrivate::init_registrar_roster(BMessenger mainMessenger,
BMessenger mimeMessenger)
{
BRoster *roster = const_cast<BRoster*>(be_roster);
roster->fMess = mainMessenger;
roster->fMimeMess = mimeMessenger;
}
// main
/*! \brief Creates and runs the registrar application.