1/* 2 * Copyright 2006, Haiku. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Ingo Weinhold <bonefish@cs.tu-berlin.de> 7 */ 8 9#include "AbstractLOAdapter.h" 10 11#include <Handler.h> 12#include <Looper.h> 13#include <Messenger.h> 14 15// constructor 16AbstractLOAdapter::AbstractLOAdapter(BHandler* handler) 17 : fHandler(handler), 18 fMessenger(NULL) 19{ 20} 21 22// constructor 23AbstractLOAdapter::AbstractLOAdapter(const BMessenger& messenger) 24 : fHandler(NULL), 25 fMessenger(new BMessenger(messenger)) 26{ 27} 28 29// destructor 30AbstractLOAdapter::~AbstractLOAdapter() 31{ 32 delete fMessenger; 33} 34 35// DeliverMessage 36void 37AbstractLOAdapter::DeliverMessage(BMessage* message) 38{ 39 if (fHandler) { 40 if (BLooper* looper = fHandler->Looper()) 41 looper->PostMessage(message, fHandler); 42 } else if (fMessenger) 43 fMessenger->SendMessage(message); 44} 45 46// DeliverMessage 47void 48AbstractLOAdapter::DeliverMessage(BMessage& message) 49{ 50 DeliverMessage(&message); 51} 52 53// DeliverMessage 54void 55AbstractLOAdapter::DeliverMessage(uint32 command) 56{ 57 BMessage message(command); 58 DeliverMessage(&message); 59} 60 61