1fb81684fSAxel Dörfler/*
2293ed4feSAxel Dörfler * Copyright 2006-2008, Haiku, Inc. All Rights Reserved.
3fb81684fSAxel Dörfler * Distributed under the terms of the MIT License.
4fb81684fSAxel Dörfler *
5fb81684fSAxel Dörfler * Authors:
6fb81684fSAxel Dörfler *		Axel D��rfler, axeld@pinc-software.de
7fb81684fSAxel Dörfler */
8fb81684fSAxel Dörfler#ifndef AUTOCONFIG_LOOPER_H
9fb81684fSAxel Dörfler#define AUTOCONFIG_LOOPER_H
10fb81684fSAxel Dörfler
11fb81684fSAxel Dörfler
12fb81684fSAxel Dörfler#include <Looper.h>
13fb81684fSAxel Dörfler#include <Messenger.h>
14fb81684fSAxel Dörfler#include <String.h>
158a9d5e34SRene Gollent#include <netinet6/in6.h>
16fb81684fSAxel Dörfler
17293ed4feSAxel Dörflerclass AutoconfigClient;
18fb81684fSAxel Dörfler
19fb81684fSAxel Dörflerclass AutoconfigLooper : public BLooper {
20293ed4feSAxel Dörflerpublic:
21293ed4feSAxel Dörfler								AutoconfigLooper(BMessenger target,
22293ed4feSAxel Dörfler									const char* device);
23293ed4feSAxel Dörfler	virtual						~AutoconfigLooper();
24fb81684fSAxel Dörfler
25293ed4feSAxel Dörfler	virtual	void				MessageReceived(BMessage* message);
26fb81684fSAxel Dörfler
27293ed4feSAxel Dörfler			BMessenger			Target() const { return fTarget; }
28fb81684fSAxel Dörfler
29293ed4feSAxel Dörflerprivate:
30293ed4feSAxel Dörfler			void				_RemoveClient();
318a9d5e34SRene Gollent			void				_ConfigureIPv4();
32293ed4feSAxel Dörfler			void				_ReadyToRun();
33a9abcc37SMichael Lotz			void				_NetworkMonitorNotification(BMessage* message);
34fb81684fSAxel Dörfler
35293ed4feSAxel Dörfler			BMessenger			fTarget;
36293ed4feSAxel Dörfler			BString				fDevice;
37293ed4feSAxel Dörfler			AutoconfigClient*	fCurrentClient;
389cac658aSRene Gollent			int32				fLastMediaStatus;
39a9abcc37SMichael Lotz			bool				fJoiningNetwork;
40fb81684fSAxel Dörfler};
41fb81684fSAxel Dörfler
42fb81684fSAxel Dörfler#endif	// AUTOCONFIG_LOOPER_H
43