15edcfe96SAxel Dörfler/*
2be902ac4SJohn Scipione * Copyright 2001-2014 Haiku, Inc. All rights reserved.
35edcfe96SAxel Dörfler * Distributed under the terms of the MIT License.
45edcfe96SAxel Dörfler *
55edcfe96SAxel Dörfler * Authors:
65edcfe96SAxel Dörfler *		Erik Jaesler (erik@cgsoftware.com)
75edcfe96SAxel Dörfler */
85edcfe96SAxel Dörfler
952a38012Sejakowatz
1052a38012Sejakowatz#include <MessageFilter.h>
1152a38012Sejakowatz
125edcfe96SAxel Dörfler
1352a38012SejakowatzBMessageFilter::BMessageFilter(uint32 inWhat, filter_hook func)
145edcfe96SAxel Dörfler	:
155edcfe96SAxel Dörfler	fFiltersAny(false),
165edcfe96SAxel Dörfler	fWhat(inWhat),
175edcfe96SAxel Dörfler	fDelivery(B_ANY_DELIVERY),
185edcfe96SAxel Dörfler	fSource(B_ANY_SOURCE),
195edcfe96SAxel Dörfler	fLooper(NULL),
205edcfe96SAxel Dörfler	fFilterFunction(func)
2152a38012Sejakowatz{
2252a38012Sejakowatz}
236f4cf451SStefano Ceccherini
246f4cf451SStefano Ceccherini
255edcfe96SAxel DörflerBMessageFilter::BMessageFilter(message_delivery delivery,
265edcfe96SAxel Dörfler	message_source source, filter_hook func)
275edcfe96SAxel Dörfler	:
285edcfe96SAxel Dörfler	fFiltersAny(true),
295edcfe96SAxel Dörfler	fWhat(0),
305edcfe96SAxel Dörfler	fDelivery(delivery),
315edcfe96SAxel Dörfler	fSource(source),
325edcfe96SAxel Dörfler	fLooper(NULL),
335edcfe96SAxel Dörfler	fFilterFunction(func)
3452a38012Sejakowatz{
3552a38012Sejakowatz}
366f4cf451SStefano Ceccherini
376f4cf451SStefano Ceccherini
385edcfe96SAxel DörflerBMessageFilter::BMessageFilter(message_delivery delivery,
395edcfe96SAxel Dörfler	message_source source, uint32 inWhat, filter_hook func)
405edcfe96SAxel Dörfler	:
415edcfe96SAxel Dörfler	fFiltersAny(false),
425edcfe96SAxel Dörfler	fWhat(inWhat),
435edcfe96SAxel Dörfler	fDelivery(delivery),
445edcfe96SAxel Dörfler	fSource(source),
455edcfe96SAxel Dörfler	fLooper(NULL),
465edcfe96SAxel Dörfler	fFilterFunction(func)
4752a38012Sejakowatz{
4852a38012Sejakowatz}
496f4cf451SStefano Ceccherini
506f4cf451SStefano Ceccherini
5152a38012SejakowatzBMessageFilter::BMessageFilter(const BMessageFilter& filter)
5252a38012Sejakowatz{
5352a38012Sejakowatz	*this = filter;
5452a38012Sejakowatz}
556f4cf451SStefano Ceccherini
566f4cf451SStefano Ceccherini
5752a38012SejakowatzBMessageFilter::BMessageFilter(const BMessageFilter* filter)
5852a38012Sejakowatz{
5952a38012Sejakowatz	*this = *filter;
6052a38012Sejakowatz}
616f4cf451SStefano Ceccherini
626f4cf451SStefano Ceccherini
6352a38012SejakowatzBMessageFilter::~BMessageFilter()
6452a38012Sejakowatz{
6552a38012Sejakowatz}
666f4cf451SStefano Ceccherini
676f4cf451SStefano Ceccherini
686f4cf451SStefano CeccheriniBMessageFilter &
696f4cf451SStefano CeccheriniBMessageFilter::operator=(const BMessageFilter& from)
7052a38012Sejakowatz{
7152a38012Sejakowatz	fFiltersAny			= from.FiltersAnyCommand();
725edcfe96SAxel Dörfler	fWhat				= from.Command();
7352a38012Sejakowatz	fDelivery			= from.MessageDelivery();
7452a38012Sejakowatz	fSource				= from.MessageSource();
7552a38012Sejakowatz	fFilterFunction		= from.FilterFunction();
7652a38012Sejakowatz
7752a38012Sejakowatz	SetLooper(from.Looper());
7852a38012Sejakowatz
7952a38012Sejakowatz	return *this;
8052a38012Sejakowatz}
8152a38012Sejakowatz
826f4cf451SStefano Ceccherini
836f4cf451SStefano Ceccherinifilter_result
846f4cf451SStefano CeccheriniBMessageFilter::Filter(BMessage* message, BHandler** target)
856f4cf451SStefano Ceccherini{
8652a38012Sejakowatz	return B_DISPATCH_MESSAGE;
8752a38012Sejakowatz}
886f4cf451SStefano Ceccherini
896f4cf451SStefano Ceccherini
906f4cf451SStefano Ceccherinimessage_delivery
916f4cf451SStefano CeccheriniBMessageFilter::MessageDelivery() const
9252a38012Sejakowatz{
9352a38012Sejakowatz	return fDelivery;
9452a38012Sejakowatz}
956f4cf451SStefano Ceccherini
966f4cf451SStefano Ceccherini
976f4cf451SStefano Ceccherinimessage_source
986f4cf451SStefano CeccheriniBMessageFilter::MessageSource() const
9952a38012Sejakowatz{
10052a38012Sejakowatz	return fSource;
10152a38012Sejakowatz}
1026f4cf451SStefano Ceccherini
1036f4cf451SStefano Ceccherini
1046f4cf451SStefano Ceccheriniuint32
1056f4cf451SStefano CeccheriniBMessageFilter::Command() const
10652a38012Sejakowatz{
1075edcfe96SAxel Dörfler	return fWhat;
10852a38012Sejakowatz}
1096f4cf451SStefano Ceccherini
1106f4cf451SStefano Ceccherini
1116f4cf451SStefano Ceccherinibool
1126f4cf451SStefano CeccheriniBMessageFilter::FiltersAnyCommand() const
11352a38012Sejakowatz{
11452a38012Sejakowatz	return fFiltersAny;
11552a38012Sejakowatz}
1166f4cf451SStefano Ceccherini
1176f4cf451SStefano Ceccherini
118be902ac4SJohn ScipioneBLooper*
1196f4cf451SStefano CeccheriniBMessageFilter::Looper() const
12052a38012Sejakowatz{
12152a38012Sejakowatz	return fLooper;
12252a38012Sejakowatz}
1236f4cf451SStefano Ceccherini
1246f4cf451SStefano Ceccherini
1256f4cf451SStefano Ceccherinivoid BMessageFilter::_ReservedMessageFilter1() {}
1266f4cf451SStefano Ceccherinivoid BMessageFilter::_ReservedMessageFilter2() {}
1276f4cf451SStefano Ceccherini
1286f4cf451SStefano Ceccherini
1296f4cf451SStefano Ceccherinivoid
1306f4cf451SStefano CeccheriniBMessageFilter::SetLooper(BLooper* owner)
13152a38012Sejakowatz{
13252a38012Sejakowatz	fLooper = owner;
13352a38012Sejakowatz}
1346f4cf451SStefano Ceccherini
1356f4cf451SStefano Ceccherini
1366f4cf451SStefano Ceccherinifilter_hook
1376f4cf451SStefano CeccheriniBMessageFilter::FilterFunction() const
13852a38012Sejakowatz{
13952a38012Sejakowatz	return fFilterFunction;
14052a38012Sejakowatz}
141