From 4b8aafea9fea87431ca453d510fc619fac2a30fc Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 25 Jan 2005 14:46:28 +0000 Subject: [PATCH] BMessenger has no friends besides Private anymore. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11023 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/app/MessageUtils.h | 10 +++--- src/kits/app/Message.cpp | 49 ++++++++++++++++++------------ src/kits/app/Roster.cpp | 6 ++-- src/kits/support/ByteOrder.cpp | 10 ++++-- 4 files changed, 46 insertions(+), 29 deletions(-) diff --git a/headers/private/app/MessageUtils.h b/headers/private/app/MessageUtils.h index d11e915fd9..ce9e3bfdac 100644 --- a/headers/private/app/MessageUtils.h +++ b/headers/private/app/MessageUtils.h @@ -14,6 +14,7 @@ #include #include #include +#include #include // 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) diff --git a/src/kits/app/Message.cpp b/src/kits/app/Message.cpp index 7c7727e14e..137f2d257b 100644 --- a/src/kits/app/Message.cpp +++ b/src/kits/app/Message.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include //#include @@ -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(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) diff --git a/src/kits/app/Roster.cpp b/src/kits/app/Roster.cpp index c4d1878cb9..062b45b44b 100644 --- a/src/kits/app/Roster.cpp +++ b/src/kits/app/Roster.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -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) { diff --git a/src/kits/support/ByteOrder.cpp b/src/kits/support/ByteOrder.cpp index 45bb007c2d..f4aa583f08 100644 --- a/src/kits/support/ByteOrder.cpp +++ b/src/kits/support/ByteOrder.cpp @@ -6,6 +6,7 @@ #include #include +#include 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;