xref: /haiku/headers/private/app/MessagePrivate.h (revision 93aeb8c3bc3f13cb1f282e3e749258a23790d947)
1 //------------------------------------------------------------------------------
2 //	MessagePrivate.h
3 //
4 //------------------------------------------------------------------------------
5 
6 #ifndef MESSAGEPRIVATE_H
7 #define MESSAGEPRIVATE_H
8 
9 #include <Message.h>
10 #include <Messenger.h>
11 #include <MessengerPrivate.h>
12 #include <TokenSpace.h>
13 
14 class BMessage::Private
15 {
16 	public:
17 		Private(BMessage* msg) : fMessage(msg) {;}
18 		Private(BMessage& msg) : fMessage(&msg) {;}
19 
20 		inline void SetTarget(int32 token, bool preferred)
21 		{
22 			fMessage->fTarget = token;
23 			fMessage->fPreferred = preferred;
24 		}
25 
26 		inline void SetReply(BMessenger messenger)
27 		{
28 			BMessenger::Private mp(messenger);
29 			fMessage->fReplyTo.port = mp.Port();
30 			fMessage->fReplyTo.target
31 				= (mp.IsPreferredTarget() ? B_PREFERRED_TOKEN : mp.Token());
32 			fMessage->fReplyTo.team = mp.Team();
33 			fMessage->fReplyTo.preferred = mp.IsPreferredTarget();
34 		}
35 
36 		inline int32 GetTarget()
37 		{
38 			return fMessage->fTarget;
39 		}
40 
41 		inline bool UsePreferredTarget()
42 		{
43 			return fMessage->fPreferred;
44 		}
45 
46 		static inline status_t SendFlattenedMessage(void *data, int32 size,
47 			port_id port, int32 token, bool preferred, bigtime_t timeout)
48 		{
49 			return BMessage::_SendFlattenedMessage(data, size, port, token,
50 				preferred, timeout);
51 		}
52 
53 		static inline void StaticInit()
54 		{
55 			BMessage::_StaticInit();
56 		}
57 
58 		static inline void StaticCleanup()
59 		{
60 			BMessage::_StaticCleanup();
61 		}
62 
63 		static inline void StaticCacheCleanup()
64 		{
65 			BMessage::_StaticCacheCleanup();
66 		}
67 
68 	private:
69 		BMessage*	fMessage;
70 };
71 
72 #endif	// MESSAGEPRIVATE_H
73 
74 /*
75  * $Log $
76  *
77  * $Id  $
78  *
79  */
80 
81