1ff1b1ac7SAxel Dörfler /* 2ff1b1ac7SAxel Dörfler * Copyright 2010, Haiku, Inc. All Rights Reserved. 3ff1b1ac7SAxel Dörfler * Distributed under the terms of the MIT License. 4ff1b1ac7SAxel Dörfler */ 5ff1b1ac7SAxel Dörfler #ifndef _NETWORK_ROSTER_H 6ff1b1ac7SAxel Dörfler #define _NETWORK_ROSTER_H 7ff1b1ac7SAxel Dörfler 8ff1b1ac7SAxel Dörfler 9c2808ea7SAxel Dörfler #include <Locker.h> 101d56eab0SAxel Dörfler #include <NetworkNotifications.h> 11*905f910eSStefano Ceccherini #include <ObjectList.h> 12ff1b1ac7SAxel Dörfler 13ff1b1ac7SAxel Dörfler class BMessenger; 14ff1b1ac7SAxel Dörfler class BNetworkInterface; 157d7b9632SMichael Lotz struct wireless_network; 16ff1b1ac7SAxel Dörfler 17ff1b1ac7SAxel Dörfler 18ff1b1ac7SAxel Dörfler class BNetworkRoster { 19ff1b1ac7SAxel Dörfler public: 20bf58f252SAxel Dörfler static BNetworkRoster& Default(); 21ff1b1ac7SAxel Dörfler 22c2808ea7SAxel Dörfler size_t CountInterfaces() const; 23c2808ea7SAxel Dörfler status_t GetNextInterface(uint32* cookie, 24c2808ea7SAxel Dörfler BNetworkInterface& interface) const; 25ff1b1ac7SAxel Dörfler 262977e788SAxel Dörfler status_t AddInterface(const char* name); 27ff1b1ac7SAxel Dörfler status_t AddInterface( 28ff1b1ac7SAxel Dörfler const BNetworkInterface& interface); 292977e788SAxel Dörfler status_t RemoveInterface(const char* name); 30ff1b1ac7SAxel Dörfler status_t RemoveInterface( 31ff1b1ac7SAxel Dörfler const BNetworkInterface& interface); 32ff1b1ac7SAxel Dörfler 337d7b9632SMichael Lotz int32 CountPersistentNetworks() const; 347d7b9632SMichael Lotz status_t GetNextPersistentNetwork(uint32* cookie, 357d7b9632SMichael Lotz wireless_network& network) const; 367d7b9632SMichael Lotz status_t AddPersistentNetwork( 377d7b9632SMichael Lotz const wireless_network& network); 387d7b9632SMichael Lotz status_t RemovePersistentNetwork(const char* name); 397d7b9632SMichael Lotz 40ff1b1ac7SAxel Dörfler status_t StartWatching(const BMessenger& target, 41ff1b1ac7SAxel Dörfler uint32 eventMask); 42ff1b1ac7SAxel Dörfler void StopWatching(const BMessenger& target); 43ff1b1ac7SAxel Dörfler 44ff1b1ac7SAxel Dörfler private: 45ff1b1ac7SAxel Dörfler BNetworkRoster(); 46ff1b1ac7SAxel Dörfler ~BNetworkRoster(); 47c2808ea7SAxel Dörfler 48c2808ea7SAxel Dörfler private: 49c2808ea7SAxel Dörfler static BNetworkRoster sDefault; 50ff1b1ac7SAxel Dörfler }; 51ff1b1ac7SAxel Dörfler 52ff1b1ac7SAxel Dörfler 53ff1b1ac7SAxel Dörfler #endif // _NETWORK_ROSTER_H 54