xref: /haiku/headers/os/net/NetworkRoster.h (revision 4bd0c1066b227cec4b79883bdef697c7a27f2e90)
1 /*
2  * Copyright 2010, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _NETWORK_ROSTER_H
6 #define _NETWORK_ROSTER_H
7 
8 
9 #include <Locker.h>
10 #include <NetworkNotifications.h>
11 #include <ObjectList.h>
12 
13 class BMessenger;
14 class BNetworkInterface;
15 struct wireless_network;
16 
17 
18 class BNetworkRoster {
19 public:
20 	static	BNetworkRoster&		Default();
21 
22 			size_t				CountInterfaces() const;
23 			status_t			GetNextInterface(uint32* cookie,
24 									BNetworkInterface& interface) const;
25 
26 			status_t			AddInterface(const char* name);
27 			status_t			AddInterface(
28 									const BNetworkInterface& interface);
29 			status_t			RemoveInterface(const char* name);
30 			status_t			RemoveInterface(
31 									const BNetworkInterface& interface);
32 
33 			int32				CountPersistentNetworks() const;
34 			status_t			GetNextPersistentNetwork(uint32* cookie,
35 									wireless_network& network) const;
36 			status_t			AddPersistentNetwork(
37 									const wireless_network& network);
38 			status_t			RemovePersistentNetwork(const char* name);
39 
40 			status_t			StartWatching(const BMessenger& target,
41 									uint32 eventMask);
42 			void				StopWatching(const BMessenger& target);
43 
44 private:
45 								BNetworkRoster();
46 								~BNetworkRoster();
47 
48 private:
49 	static	BNetworkRoster		sDefault;
50 };
51 
52 
53 #endif	// _NETWORK_ROSTER_H
54