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 // This class provides some basic functionality for derivation of a 10*cc2fbed2SStephan Aßmus // listener -> observer adapter. 11*cc2fbed2SStephan Aßmus // The derived class should implement constructors similar to the 12*cc2fbed2SStephan Aßmus // ones of this class and pass the respective parameter. 13*cc2fbed2SStephan Aßmus // Each of the listener hook functions should construct a message 14*cc2fbed2SStephan Aßmus // and let it be delivered by DeliverMessage(). 15*cc2fbed2SStephan Aßmus 16*cc2fbed2SStephan Aßmus #ifndef ABSTRACT_LO_ADAPTER_H 17*cc2fbed2SStephan Aßmus #define ABSTRACT_LO_ADAPTER_H 18*cc2fbed2SStephan Aßmus 19*cc2fbed2SStephan Aßmus #include <SupportDefs.h> 20*cc2fbed2SStephan Aßmus 21*cc2fbed2SStephan Aßmus class BHandler; 22*cc2fbed2SStephan Aßmus class BLooper; 23*cc2fbed2SStephan Aßmus class BMessage; 24*cc2fbed2SStephan Aßmus class BMessenger; 25*cc2fbed2SStephan Aßmus 26*cc2fbed2SStephan Aßmus class AbstractLOAdapter { 27*cc2fbed2SStephan Aßmus public: 28*cc2fbed2SStephan Aßmus AbstractLOAdapter(BHandler* handler); 29*cc2fbed2SStephan Aßmus AbstractLOAdapter(const BMessenger& messenger); 30*cc2fbed2SStephan Aßmus virtual ~AbstractLOAdapter(); 31*cc2fbed2SStephan Aßmus 32*cc2fbed2SStephan Aßmus void DeliverMessage(BMessage* message); 33*cc2fbed2SStephan Aßmus void DeliverMessage(BMessage& message); 34*cc2fbed2SStephan Aßmus void DeliverMessage(uint32 command); 35*cc2fbed2SStephan Aßmus 36*cc2fbed2SStephan Aßmus private: 37*cc2fbed2SStephan Aßmus BHandler* fHandler; 38*cc2fbed2SStephan Aßmus BMessenger* fMessenger; 39*cc2fbed2SStephan Aßmus }; 40*cc2fbed2SStephan Aßmus 41*cc2fbed2SStephan Aßmus #endif // ABSTRACT_LO_ADAPTER_H 42