1/* 2 * Copyright 2001-2014 Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Erik Jaesler (erik@cgsoftware.com) 7 */ 8 9 10#include <MessageFilter.h> 11 12 13BMessageFilter::BMessageFilter(uint32 inWhat, filter_hook func) 14 : 15 fFiltersAny(false), 16 fWhat(inWhat), 17 fDelivery(B_ANY_DELIVERY), 18 fSource(B_ANY_SOURCE), 19 fLooper(NULL), 20 fFilterFunction(func) 21{ 22} 23 24 25BMessageFilter::BMessageFilter(message_delivery delivery, 26 message_source source, filter_hook func) 27 : 28 fFiltersAny(true), 29 fWhat(0), 30 fDelivery(delivery), 31 fSource(source), 32 fLooper(NULL), 33 fFilterFunction(func) 34{ 35} 36 37 38BMessageFilter::BMessageFilter(message_delivery delivery, 39 message_source source, uint32 inWhat, filter_hook func) 40 : 41 fFiltersAny(false), 42 fWhat(inWhat), 43 fDelivery(delivery), 44 fSource(source), 45 fLooper(NULL), 46 fFilterFunction(func) 47{ 48} 49 50 51BMessageFilter::BMessageFilter(const BMessageFilter& filter) 52{ 53 *this = filter; 54} 55 56 57BMessageFilter::BMessageFilter(const BMessageFilter* filter) 58{ 59 *this = *filter; 60} 61 62 63BMessageFilter::~BMessageFilter() 64{ 65} 66 67 68BMessageFilter & 69BMessageFilter::operator=(const BMessageFilter& from) 70{ 71 fFiltersAny = from.FiltersAnyCommand(); 72 fWhat = from.Command(); 73 fDelivery = from.MessageDelivery(); 74 fSource = from.MessageSource(); 75 fFilterFunction = from.FilterFunction(); 76 77 SetLooper(from.Looper()); 78 79 return *this; 80} 81 82 83filter_result 84BMessageFilter::Filter(BMessage* message, BHandler** target) 85{ 86 return B_DISPATCH_MESSAGE; 87} 88 89 90message_delivery 91BMessageFilter::MessageDelivery() const 92{ 93 return fDelivery; 94} 95 96 97message_source 98BMessageFilter::MessageSource() const 99{ 100 return fSource; 101} 102 103 104uint32 105BMessageFilter::Command() const 106{ 107 return fWhat; 108} 109 110 111bool 112BMessageFilter::FiltersAnyCommand() const 113{ 114 return fFiltersAny; 115} 116 117 118BLooper* 119BMessageFilter::Looper() const 120{ 121 return fLooper; 122} 123 124 125void BMessageFilter::_ReservedMessageFilter1() {} 126void BMessageFilter::_ReservedMessageFilter2() {} 127 128 129void 130BMessageFilter::SetLooper(BLooper* owner) 131{ 132 fLooper = owner; 133} 134 135 136filter_hook 137BMessageFilter::FilterFunction() const 138{ 139 return fFilterFunction; 140} 141