BMessenger has no friends besides Private anymore.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11023 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
4afc60d31b
commit
4b8aafea9f
@ -14,6 +14,7 @@
|
||||
#include <Entry.h>
|
||||
#include <Message.h>
|
||||
#include <Messenger.h>
|
||||
#include <MessengerPrivate.h>
|
||||
#include <SupportDefs.h>
|
||||
|
||||
// Project Includes ------------------------------------------------------------
|
||||
@ -62,10 +63,11 @@ inline
|
||||
void
|
||||
_set_message_reply_(BMessage *message, BMessenger messenger)
|
||||
{
|
||||
message->fReplyTo.port = messenger.fPort;
|
||||
message->fReplyTo.target = messenger.fHandlerToken;
|
||||
message->fReplyTo.team = messenger.fTeam;
|
||||
message->fReplyTo.preferred = messenger.fPreferredTarget;
|
||||
BMessenger::Private messengerPrivate(messenger);
|
||||
message->fReplyTo.port = messengerPrivate.Port();
|
||||
message->fReplyTo.target = messengerPrivate.Token();
|
||||
message->fReplyTo.team = messengerPrivate.Team();
|
||||
message->fReplyTo.preferred = messengerPrivate.IsPreferredTarget();
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
inline int32 _get_message_target_(BMessage *msg)
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <Errors.h>
|
||||
#include <Message.h>
|
||||
#include <Messenger.h>
|
||||
#include <MessengerPrivate.h>
|
||||
#include <String.h>
|
||||
|
||||
//#include <CRTDBG.H>
|
||||
@ -329,8 +330,10 @@ BMessenger BMessage::ReturnAddress() const
|
||||
{
|
||||
if (WasDelivered())
|
||||
{
|
||||
return BMessenger(fReplyTo.team, fReplyTo.port, fReplyTo.target,
|
||||
fReplyTo.preferred);
|
||||
BMessenger messenger;
|
||||
BMessenger::Private(messenger).SetTo(fReplyTo.team, fReplyTo.port,
|
||||
fReplyTo.target, fReplyTo.preferred);
|
||||
return messenger;
|
||||
}
|
||||
|
||||
return BMessenger();
|
||||
@ -457,9 +460,11 @@ status_t BMessage::SendReply(BMessage* the_reply, BMessenger reply_to,
|
||||
bigtime_t timeout)
|
||||
{
|
||||
// TODO: test
|
||||
BMessenger messenger(fReplyTo.team, fReplyTo.port,
|
||||
fReplyTo.target,
|
||||
fReplyTo.preferred);
|
||||
BMessenger messenger;
|
||||
|
||||
BMessenger::Private messengerPrivate(messenger);
|
||||
messengerPrivate.SetTo(fReplyTo.team, fReplyTo.port, fReplyTo.target,
|
||||
fReplyTo.preferred);
|
||||
if (fReplyRequired)
|
||||
{
|
||||
if (fReplyDone)
|
||||
@ -472,9 +477,9 @@ status_t BMessage::SendReply(BMessage* the_reply, BMessenger reply_to,
|
||||
the_reply->fIsReply = false;
|
||||
if (err)
|
||||
{
|
||||
if (set_port_owner(messenger.fPort, messenger.fTeam) == B_BAD_TEAM_ID)
|
||||
{
|
||||
delete_port(messenger.fPort);
|
||||
if (set_port_owner(messengerPrivate.Port(),
|
||||
messengerPrivate.Team()) == B_BAD_TEAM_ID) {
|
||||
delete_port(messengerPrivate.Port());
|
||||
}
|
||||
}
|
||||
return err;
|
||||
@ -526,9 +531,10 @@ status_t BMessage::SendReply(BMessage* the_reply, BMessage* reply_to_reply,
|
||||
bigtime_t send_timeout, bigtime_t reply_timeout)
|
||||
{
|
||||
// TODO: test
|
||||
BMessenger messenger(fReplyTo.team, fReplyTo.port,
|
||||
fReplyTo.target,
|
||||
fReplyTo.preferred);
|
||||
BMessenger messenger;
|
||||
BMessenger::Private messengerPrivate(messenger);
|
||||
messengerPrivate.SetTo(fReplyTo.team, fReplyTo.port, fReplyTo.target,
|
||||
fReplyTo.preferred);
|
||||
if (fReplyRequired)
|
||||
{
|
||||
if (fReplyDone)
|
||||
@ -542,9 +548,9 @@ status_t BMessage::SendReply(BMessage* the_reply, BMessage* reply_to_reply,
|
||||
the_reply->fIsReply = false;
|
||||
if (err)
|
||||
{
|
||||
if (set_port_owner(messenger.fPort, messenger.fTeam) == B_BAD_TEAM_ID)
|
||||
{
|
||||
delete_port(messenger.fPort);
|
||||
if (set_port_owner(messengerPrivate.Port(),
|
||||
messengerPrivate.Team()) == B_BAD_TEAM_ID) {
|
||||
delete_port(messengerPrivate.Port());
|
||||
}
|
||||
}
|
||||
return err;
|
||||
@ -1792,14 +1798,15 @@ PRINT(("BMessage::_send_(port: %ld, token: %ld, preferred: %d): "
|
||||
tmp_msg.fReplyTo = fReplyTo;
|
||||
|
||||
BMessage* self = const_cast<BMessage*>(this);
|
||||
BMessenger::Private replyToPrivate(reply_to);
|
||||
self->fPreferred = preferred;
|
||||
self->fTarget = token;
|
||||
self->fReplyRequired = reply_required;
|
||||
self->fReplyTo.team = reply_to.fTeam;
|
||||
self->fReplyTo.port = reply_to.fPort;
|
||||
self->fReplyTo.target = (reply_to.fPreferredTarget
|
||||
? B_PREFERRED_TOKEN : reply_to.fHandlerToken);
|
||||
self->fReplyTo.preferred = reply_to.fPreferredTarget;
|
||||
self->fReplyTo.team = replyToPrivate.Team();
|
||||
self->fReplyTo.port = replyToPrivate.Port();
|
||||
self->fReplyTo.target = (replyToPrivate.IsPreferredTarget()
|
||||
? B_PREFERRED_TOKEN : replyToPrivate.Token());
|
||||
self->fReplyTo.preferred = replyToPrivate.IsPreferredTarget();
|
||||
|
||||
char tmp[0x800];
|
||||
ssize_t size;
|
||||
@ -1863,7 +1870,9 @@ status_t BMessage::send_message(port_id port, team_id port_owner, int32 token,
|
||||
goto error;
|
||||
|
||||
{
|
||||
BMessenger messenger(team, reply_port, B_PREFERRED_TOKEN, false);
|
||||
BMessenger messenger;
|
||||
BMessenger::Private(messenger).SetTo(team, reply_port,
|
||||
B_PREFERRED_TOKEN, false);
|
||||
err = _send_(port, token, preferred, send_timeout, true, messenger);
|
||||
}
|
||||
if (err)
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include <fs_info.h>
|
||||
#include <image.h>
|
||||
#include <List.h>
|
||||
#include <MessengerPrivate.h>
|
||||
#include <Mime.h>
|
||||
#include <Node.h>
|
||||
#include <NodeInfo.h>
|
||||
@ -2145,7 +2146,8 @@ BRoster::send_to_running(team_id team, int argc, const char *const *args,
|
||||
app_info info;
|
||||
error = GetRunningAppInfo(team, &info);
|
||||
if (error == B_OK) {
|
||||
BMessenger messenger(team, info.port, 0, true);
|
||||
BMessenger messenger;
|
||||
BMessenger::Private(messenger).SetTo(team, info.port, 0, true);
|
||||
// send messages from the list
|
||||
if (messageList) {
|
||||
for (int32 i = 0;
|
||||
@ -2186,7 +2188,7 @@ DBG(OUT("BRoster::InitMessengers()\n"));
|
||||
if (rosterPort >= 0 && get_port_info(rosterPort, &info) == B_OK) {
|
||||
DBG(OUT(" found roster port\n"));
|
||||
// ask for the MIME messenger
|
||||
fMess = BMessenger(info.team, rosterPort, 0, true);
|
||||
BMessenger::Private(fMess).SetTo(info.team, rosterPort, 0, true);
|
||||
BMessage reply;
|
||||
status_t error = fMess.SendMessage(B_REG_GET_MIME_MESSENGER, &reply);
|
||||
if (error == B_OK && reply.what == B_REG_SUCCESS) {
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
#include <ByteOrder.h>
|
||||
#include <Messenger.h>
|
||||
#include <MessengerPrivate.h>
|
||||
|
||||
|
||||
status_t
|
||||
@ -108,10 +109,13 @@ swap_data(type_code type, void *_data, size_t length, swap_action action)
|
||||
BMessenger *end = (BMessenger *)((addr_t)_data + length);
|
||||
|
||||
while (messenger < end) {
|
||||
BMessenger::Private messengerPrivate(messenger);
|
||||
// ToDo: if the additional fields change, this function has to be updated!
|
||||
messenger->fPort = __swap_int32(messenger->fPort);
|
||||
messenger->fHandlerToken = __swap_int32(messenger->fHandlerToken);
|
||||
messenger->fTeam = __swap_int32(messenger->fTeam);
|
||||
messengerPrivate.SetTo(
|
||||
__swap_int32(messengerPrivate.Team()),
|
||||
__swap_int32(messengerPrivate.Port()),
|
||||
__swap_int32(messengerPrivate.Token()),
|
||||
messengerPrivate.IsPreferredTarget());
|
||||
messenger++;
|
||||
}
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user