1// SMInvoker.h 2 3#ifndef SM_INVOKER_H 4#define SM_INVOKER_H 5 6#include <Messenger.h> 7 8class SMInvoker { 9public: 10 SMInvoker(); 11 virtual ~SMInvoker(); 12 13 virtual status_t Invoke(BMessenger &target, BHandler *replyHandler, 14 BMessenger &replyMessenger) = 0; 15 16 bool ReplySuccess(); 17 bool DirectReply(); 18 19protected: 20 BMessage *fReplyMessage; 21}; 22 23// Invoker for SendMessage(uint32, BHandler *) 24class SMInvoker1 : public SMInvoker { 25public: 26 SMInvoker1(bool useReplyTo); 27 28 virtual status_t Invoke(BMessenger &target, BHandler *replyHandler, 29 BMessenger &replyMessenger); 30 31private: 32 bool fUseReplyTo; 33}; 34 35// Invoker for SendMessage(BMessage *, BHandler *, bigtime_t) 36class SMInvoker2 : public SMInvoker { 37public: 38 SMInvoker2(bool useMessage, bool useReplyTo, bigtime_t timeout); 39 40 virtual status_t Invoke(BMessenger &target, BHandler *replyHandler, 41 BMessenger &replyMessenger); 42 43private: 44 bool fUseMessage; 45 bool fUseReplyTo; 46 bigtime_t fTimeout; 47}; 48 49// Invoker for SendMessage(BMessage *, BMessenger, bigtime_t) 50class SMInvoker3 : public SMInvoker { 51public: 52 SMInvoker3(bool useMessage, bool useReplyTo, bigtime_t timeout); 53 54 virtual status_t Invoke(BMessenger &target, BHandler *replyHandler, 55 BMessenger &replyMessenger); 56 57private: 58 bool fUseMessage; 59 bool fUseReplyTo; 60 bigtime_t fTimeout; 61}; 62 63// Invoker for SendMessage(uint32, BMessage *) 64class SMInvoker4 : public SMInvoker { 65public: 66 SMInvoker4(bool useReply); 67 68 virtual status_t Invoke(BMessenger &target, BHandler *replyHandler, 69 BMessenger &replyMessenger); 70 71private: 72 bool fUseReply; 73}; 74 75// Invoker for SendMessage(BMessage *, BMessage *, bigtime_t, bigtime_t) 76class SMInvoker5 : public SMInvoker { 77public: 78 SMInvoker5(bool useMessage, bool useReply, bigtime_t deliveryTimeout, 79 bigtime_t replyTimeout); 80 81 virtual status_t Invoke(BMessenger &target, BHandler *replyHandler, 82 BMessenger &replyMessenger); 83 84private: 85 bool fUseMessage; 86 bool fUseReply; 87 bigtime_t fDeliveryTimeout; 88 bigtime_t fReplyTimeout; 89}; 90 91#endif // SM_INVOKER_H 92