RosterPrivate: add IsShutDownInProgress()
enable to check whether a shutdown process is in progress. Change-Id: I8efdddb3caa80e9fd188f202b6e92a888a7608e5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2042 Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
committed by
waddlesplash
parent
a02f7c7bae
commit
feeb4b5d93
@@ -147,6 +147,7 @@ private:
|
|||||||
|
|
||||||
status_t _ShutDown(bool reboot, bool confirm,
|
status_t _ShutDown(bool reboot, bool confirm,
|
||||||
bool synchronous);
|
bool synchronous);
|
||||||
|
status_t _IsShutDownInProgress(bool* inProgress);
|
||||||
|
|
||||||
status_t _AddApplication(const char* signature,
|
status_t _AddApplication(const char* signature,
|
||||||
const entry_ref* ref, uint32 flags,
|
const entry_ref* ref, uint32 flags,
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ enum {
|
|||||||
B_REG_GET_CLIPBOARD_MESSENGER = 'rgcm',
|
B_REG_GET_CLIPBOARD_MESSENGER = 'rgcm',
|
||||||
B_REG_GET_DISK_DEVICE_MESSENGER = 'rgdm',
|
B_REG_GET_DISK_DEVICE_MESSENGER = 'rgdm',
|
||||||
B_REG_SHUT_DOWN = 'rgsh',
|
B_REG_SHUT_DOWN = 'rgsh',
|
||||||
|
B_REG_IS_SHUT_DOWN_IN_PROGRESS = 'rgsi',
|
||||||
|
|
||||||
// roster requests
|
// roster requests
|
||||||
B_REG_ADD_APP = 'rgaa',
|
B_REG_ADD_APP = 'rgaa',
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ class BRoster::Private {
|
|||||||
|
|
||||||
status_t ShutDown(bool reboot, bool confirm, bool synchronous)
|
status_t ShutDown(bool reboot, bool confirm, bool synchronous)
|
||||||
{ return fRoster->_ShutDown(reboot, confirm, synchronous); }
|
{ return fRoster->_ShutDown(reboot, confirm, synchronous); }
|
||||||
|
status_t IsShutDownInProgress(bool* inProgress)
|
||||||
|
{ return fRoster->_IsShutDownInProgress(inProgress); }
|
||||||
|
|
||||||
// needed by BApplication
|
// needed by BApplication
|
||||||
|
|
||||||
|
|||||||
@@ -1343,6 +1343,43 @@ BRoster::_ShutDown(bool reboot, bool confirm, bool synchronous)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*! Checks whether a shutdown process is in progress.
|
||||||
|
|
||||||
|
\param inProgress: Pointer to a pre-allocated bool to be filled in
|
||||||
|
by this method, indicating whether or not a shutdown process
|
||||||
|
is in progress.
|
||||||
|
\return A status code, \c B_OK on success or another error code in case
|
||||||
|
something went wrong.
|
||||||
|
*/
|
||||||
|
status_t
|
||||||
|
BRoster::_IsShutDownInProgress(bool* inProgress)
|
||||||
|
{
|
||||||
|
status_t error = B_OK;
|
||||||
|
|
||||||
|
// compose the request message
|
||||||
|
BMessage request(B_REG_IS_SHUT_DOWN_IN_PROGRESS);
|
||||||
|
|
||||||
|
// send the request
|
||||||
|
BMessage reply;
|
||||||
|
if (error == B_OK)
|
||||||
|
error = fMessenger.SendMessage(&request, &reply);
|
||||||
|
|
||||||
|
// evaluate the reply
|
||||||
|
if (error == B_OK) {
|
||||||
|
if (reply.what == B_REG_SUCCESS) {
|
||||||
|
if (inProgress != NULL
|
||||||
|
&& reply.FindBool("in-progress", inProgress) != B_OK) {
|
||||||
|
error = B_ERROR;
|
||||||
|
}
|
||||||
|
} else if (reply.FindInt32("error", &error) != B_OK)
|
||||||
|
error = B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*! (Pre-)Registers an application with the registrar.
|
/*! (Pre-)Registers an application with the registrar.
|
||||||
|
|
||||||
This methods is invoked either to register or to pre-register an
|
This methods is invoked either to register or to pre-register an
|
||||||
|
|||||||
@@ -248,6 +248,13 @@ Registrar::_MessageReceived(BMessage *message)
|
|||||||
_HandleShutDown(message);
|
_HandleShutDown(message);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case B_REG_IS_SHUT_DOWN_IN_PROGRESS:
|
||||||
|
{
|
||||||
|
PRINT("B_REG_IS_SHUT_DOWN_IN_PROGRESS\n");
|
||||||
|
|
||||||
|
_HandleIsShutDownInProgress(message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case B_REG_TEAM_DEBUGGER_ALERT:
|
case B_REG_TEAM_DEBUGGER_ALERT:
|
||||||
{
|
{
|
||||||
if (fShutdownProcess != NULL)
|
if (fShutdownProcess != NULL)
|
||||||
@@ -416,6 +423,18 @@ Registrar::_HandleShutDown(BMessage *request)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*! \brief Handle a is shut down in progress request message.
|
||||||
|
\param request The request to be handled.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
Registrar::_HandleIsShutDownInProgress(BMessage *request)
|
||||||
|
{
|
||||||
|
BMessage reply(B_REG_SUCCESS);
|
||||||
|
reply.AddBool("in-progress", fShutdownProcess != NULL);
|
||||||
|
request->SendReply(&reply);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
void _MessageReceived(BMessage *message);
|
void _MessageReceived(BMessage *message);
|
||||||
void _HandleShutDown(BMessage *message);
|
void _HandleShutDown(BMessage *message);
|
||||||
|
void _HandleIsShutDownInProgress(BMessage *message);
|
||||||
|
|
||||||
TRoster *fRoster;
|
TRoster *fRoster;
|
||||||
ClipboardHandler *fClipboardHandler;
|
ClipboardHandler *fClipboardHandler;
|
||||||
|
|||||||
Reference in New Issue
Block a user