blob: d0dbf0b19a652454d2f842ea38a2a6136f414764 [file] [log] [blame]
Paul Stewartf1ce5d22011-05-19 13:10:20 -07001// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef SHILL_ETHERNET_SERVICE_
6#define SHILL_ETHERNET_SERVICE_
7
8#include <base/basictypes.h>
9
Chris Masone2b105542011-06-22 10:58:09 -070010#include "shill/refptr_types.h"
Paul Stewartf1ce5d22011-05-19 13:10:20 -070011#include "shill/shill_event.h"
12#include "shill/service.h"
13
14namespace shill {
15
Chris Masone6791a432011-07-12 13:23:19 -070016class ControlInterface;
17class EventDispatcher;
18class Manager;
19
Paul Stewartf1ce5d22011-05-19 13:10:20 -070020class EthernetService : public Service {
21 public:
22 EthernetService(ControlInterface *control_interface,
23 EventDispatcher *dispatcher,
Chris Masone6791a432011-07-12 13:23:19 -070024 Manager *manager,
mukesh agrawal51a7e932011-07-27 16:18:26 -070025 const EthernetRefPtr &device);
Paul Stewartf1ce5d22011-05-19 13:10:20 -070026 ~EthernetService();
Darin Petkov4d6d9412011-08-24 13:19:54 -070027
28 // Inherited from Service.
29 virtual void Connect(Error *error);
30 virtual void Disconnect();
Chris Masone3bd3c8c2011-06-13 08:20:26 -070031
Chris Masone34af2182011-08-22 11:59:36 -070032 // ethernet_<MAC>
33 virtual std::string GetStorageIdentifier(const std::string &mac);
34
Chris Masone3bd3c8c2011-06-13 08:20:26 -070035 protected:
36 virtual std::string CalculateState() { return "idle"; }
37
Paul Stewartf1ce5d22011-05-19 13:10:20 -070038 private:
Chris Masone34af2182011-08-22 11:59:36 -070039 static const char kServiceType[];
40
Chris Masone95207da2011-06-29 16:50:49 -070041 std::string GetDeviceRpcId();
42
Chris Masone2b105542011-06-22 10:58:09 -070043 EthernetRefPtr ethernet_;
Chris Masone3bd3c8c2011-06-13 08:20:26 -070044 const std::string type_;
Paul Stewartf1ce5d22011-05-19 13:10:20 -070045 DISALLOW_COPY_AND_ASSIGN(EthernetService);
46};
47
48} // namespace shill
49
50#endif // SHILL_ETHERNET_SERVICE_