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