1// SMInvoker.cpp 2 3#include "SMInvoker.h" 4#include "SMMessages.h" 5 6// SMInvoker 7 8// constructor 9SMInvoker::SMInvoker() 10 : fReplyMessage(NULL) 11{ 12} 13 14// destructor 15SMInvoker::~SMInvoker() 16{ 17 delete fReplyMessage; 18} 19 20// ReplySuccess 21bool 22SMInvoker::ReplySuccess() 23{ 24 return (fReplyMessage && fReplyMessage->what == MSG_REPLY); 25} 26 27// DirectReply 28bool 29SMInvoker::DirectReply() 30{ 31 return fReplyMessage; 32} 33 34 35// SMInvoker1 36 37// constructor 38SMInvoker1::SMInvoker1(bool useReplyTo) 39 : SMInvoker(), 40 fUseReplyTo(useReplyTo) 41{ 42} 43 44// Invoke 45status_t 46SMInvoker1::Invoke(BMessenger &target, BHandler *replyHandler, 47 BMessenger &replyMessenger) 48{ 49 BHandler *replyTo = (fUseReplyTo ? replyHandler : NULL); 50 status_t result = target.SendMessage(MSG_TEST, replyTo); 51 return result; 52} 53 54 55// SMInvoker2 56 57// constructor 58SMInvoker2::SMInvoker2(bool useMessage, bool useReplyTo, bigtime_t timeout) 59 : SMInvoker(), 60 fUseMessage(useMessage), 61 fUseReplyTo(useReplyTo), 62 fTimeout(timeout) 63{ 64} 65 66// Invoke 67status_t 68SMInvoker2::Invoke(BMessenger &target, BHandler *replyHandler, 69 BMessenger &replyMessenger) 70{ 71 BHandler *replyTo = (fUseReplyTo ? replyHandler : NULL); 72 BMessage _message(MSG_TEST); 73 BMessage *message = (fUseMessage ? &_message : NULL); 74 status_t result = target.SendMessage(message, replyTo, fTimeout); 75 return result; 76} 77 78 79// SMInvoker3 80 81// constructor 82SMInvoker3::SMInvoker3(bool useMessage, bool useReplyTo, bigtime_t timeout) 83 : SMInvoker(), 84 fUseMessage(useMessage), 85 fUseReplyTo(useReplyTo), 86 fTimeout(timeout) 87{ 88} 89 90// Invoke 91status_t 92SMInvoker3::Invoke(BMessenger &target, BHandler *replyHandler, 93 BMessenger &replyMessenger) 94{ 95 BMessenger badMessenger; 96 BMessenger &replyTo = (fUseReplyTo ? replyMessenger : badMessenger); 97 BMessage _message(MSG_TEST); 98 BMessage *message = (fUseMessage ? &_message : NULL); 99 status_t result = target.SendMessage(message, replyTo, fTimeout); 100 return result; 101} 102 103 104// SMInvoker4 105 106// constructor 107SMInvoker4::SMInvoker4(bool useReply) 108 : SMInvoker(), 109 fUseReply(useReply) 110{ 111} 112 113// Invoke 114status_t 115SMInvoker4::Invoke(BMessenger &target, BHandler *replyHandler, 116 BMessenger &replyMessenger) 117{ 118 if (fUseReply) 119 fReplyMessage = new BMessage(uint32(0)); 120 status_t result = target.SendMessage(MSG_TEST, fReplyMessage); 121 return result; 122} 123 124 125// SMInvoker5 126 127// constructor 128SMInvoker5::SMInvoker5(bool useMessage, bool useReply, 129 bigtime_t deliveryTimeout, bigtime_t replyTimeout) 130 : SMInvoker(), 131 fUseMessage(useMessage), 132 fUseReply(useReply), 133 fDeliveryTimeout(deliveryTimeout), 134 fReplyTimeout(replyTimeout) 135{ 136} 137 138// Invoke 139status_t 140SMInvoker5::Invoke(BMessenger &target, BHandler *replyHandler, 141 BMessenger &replyMessenger) 142{ 143 if (fUseReply) 144 fReplyMessage = new BMessage(uint32(0)); 145 BMessage _message(MSG_TEST); 146 BMessage *message = (fUseMessage ? &_message : NULL); 147 status_t result = target.SendMessage(message, fReplyMessage, 148 fDeliveryTimeout, fReplyTimeout); 149 return result; 150} 151 152 153