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