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