Added support for the B_REG_SET_SIGNATURE request (BRoster::SetSignature()).

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1438 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2002-10-07 22:03:11 +00:00
parent 480ed2e7f3
commit af8eec4080
3 changed files with 41 additions and 0 deletions
+3
View File
@@ -95,6 +95,9 @@ Registrar::MessageReceived(BMessage *message)
case B_REG_SET_THREAD_AND_TEAM:
fRoster->HandleSetThreadAndTeam(message);
break;
case B_REG_SET_SIGNATURE:
fRoster->HandleSetSignature(message);
break;
case B_REG_GET_APP_INFO:
fRoster->HandleGetAppInfo(message);
break;
+37
View File
@@ -462,6 +462,43 @@ PRINT(("team: %ld, thread: %ld, token: %lu\n", team, thread, token));
FUNCTION_END();
}
// HandleSetSignature
/*! \brief Handles a SetSignature() request.
\param request The request message
*/
void
TRoster::HandleSetSignature(BMessage *request)
{
FUNCTION_START();
status_t error = B_OK;
// get the parameters
team_id team;
const char *signature;
if (request->FindInt32("team", &team) != B_OK)
error = B_BAD_VALUE;
if (request->FindString("signature", &signature) != B_OK)
error = B_BAD_VALUE;
// find the app and set the signature
if (error == B_OK) {
if (RosterAppInfo *info = fRegisteredApps.InfoFor(team))
strcpy(info->signature, signature);
else
SET_ERROR(error, B_REG_APP_NOT_REGISTERED);
}
// reply to the request
if (error == B_OK) {
BMessage reply(B_REG_SUCCESS);
request->SendReply(&reply);
} else {
BMessage reply(B_REG_ERROR);
reply.AddInt32("error", error);
request->SendReply(&reply);
}
FUNCTION_END();
}
// HandleGetAppInfo
/*! \brief Handles a Get{Running,Active,}AppInfo() request.
\param request The request message
+1
View File
@@ -58,6 +58,7 @@ public:
void HandleRemovePreRegApp(BMessage *request);
void HandleRemoveApp(BMessage *request);
void HandleSetThreadAndTeam(BMessage *request);
void HandleSetSignature(BMessage *request);
void HandleGetAppInfo(BMessage *request);
void HandleGetAppList(BMessage *request);
void HandleActivateApp(BMessage *request);