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