From dda672d89823e888d3815e2522e7b37274a470d2 Mon Sep 17 00:00:00 2001 From: Michael Pfeiffer Date: Tue, 22 Oct 2002 15:56:40 +0000 Subject: [PATCH] Added class AutoReply. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1594 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/print/BeUtils.cpp | 31 +++++++++++++++++++++++++++++++ src/servers/print/BeUtils.h | 15 +++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/servers/print/BeUtils.cpp b/src/servers/print/BeUtils.cpp index ea27c2ab6b..b2709d93f9 100644 --- a/src/servers/print/BeUtils.cpp +++ b/src/servers/print/BeUtils.cpp @@ -9,6 +9,7 @@ // // Author // Ithamar R. Adema +// Michael Pfeiffer // // This application and all source files used in its construction, except // where noted, are licensed under the MIT License, and have been written @@ -34,8 +35,14 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. /*****************************************************************************/ + +#include +#include +#include + #include "BeUtils.h" + // --------------------------------------------------------------- // TestForAddonExistence // @@ -59,3 +66,27 @@ status_t TestForAddonExistence(const char* name, directory_which which, const ch return err; } + +// Implementation of AutoReply + +AutoReply::AutoReply(BMessage* sender, uint32 what) + : fSender(sender) + , fReply(what) +{ +} + +AutoReply::~AutoReply() { + fSender->SendReply(&fReply); + delete fSender; +} + +bool MimeTypeForSender(BMessage* sender, BString& mime) { + BMessenger msgr = sender->ReturnAddress(); + team_id team = msgr.Team(); + app_info info; + if (be_roster->GetRunningAppInfo(team, &info) == B_OK) { + mime = info.signature; + return true; + } + return false; +} diff --git a/src/servers/print/BeUtils.h b/src/servers/print/BeUtils.h index 0b3bdc7b4d..ebf374b5fa 100644 --- a/src/servers/print/BeUtils.h +++ b/src/servers/print/BeUtils.h @@ -72,4 +72,19 @@ public: } }; +// Automatically send a reply to sender on destruction of object +// and delete sender +class AutoReply { + BMessage* fSender; + BMessage fReply; + +public: + AutoReply(BMessage* sender, uint32 what); + ~AutoReply(); + void SetReply(BMessage* m) { fReply = *m; } +}; + +// mimetype from sender +bool MimeTypeForSender(BMessage* sender, BString& mime); + #endif