ethernet.h revision 2b10554b6c736f3421102d483b74b70bb82f997c
1b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart// Copyright (c) 2011 The Chromium OS Authors. All rights reserved. 2b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart// Use of this source code is governed by a BSD-style license that can be 3b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart// found in the LICENSE file. 4b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart 5b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart#ifndef SHILL_ETHERNET_ 6b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart#define SHILL_ETHERNET_ 7b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart 846eaaf53d5e5b92f418b8d7cbfe7e847b575791fChris Masone#include <string> 946eaaf53d5e5b92f418b8d7cbfe7e847b575791fChris Masone 10b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart#include "shill/device.h" 112b10554b6c736f3421102d483b74b70bb82f997cChris Masone#include "shill/refptr_types.h" 12b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart#include "shill/shill_event.h" 13b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart 14b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewartnamespace shill { 15b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart 16b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewartclass Ethernet : public Device { 17b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart public: 18afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov Ethernet(ControlInterface *control_interface, 19afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov EventDispatcher *dispatcher, 20afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov Manager *manager, 21afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov const std::string& link_name, 22afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov int interface_index); 23b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart ~Ethernet(); 24afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov 25f1ce5d27adbfcaf9c46e650252b46e02b0d8addaPaul Stewart void Start(); 26f1ce5d27adbfcaf9c46e650252b46e02b0d8addaPaul Stewart void Stop(); 27b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart bool TechnologyIs(Device::Technology type); 28afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov void LinkEvent(unsigned int flags, unsigned int change); 29f1ce5d27adbfcaf9c46e650252b46e02b0d8addaPaul Stewart 30b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart private: 31f1ce5d27adbfcaf9c46e650252b46e02b0d8addaPaul Stewart bool service_registered_; 32c1e50412f45518e23d51ba8bb8694c366943d945Chris Masone ServiceRefPtr service_; 33afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov bool link_up_; 34afa6fc4d31e884af8710deb14798c69b9c9a898eDarin Petkov 35b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart DISALLOW_COPY_AND_ASSIGN(Ethernet); 36b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart}; 37b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart 38b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart} // namespace shill 39b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart 40b50f0b9837c398b8edd5dc568eb01bdcff9a4d65Paul Stewart#endif // SHILL_ETHERNET_ 41