blob: 8e87099237b444ed352daac5f12805e15be66011 [file] [log] [blame]
Paul Stewart75897df2011-04-27 09:05:53 -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_MANAGER_
6#define SHILL_MANAGER_
7
8#include <vector>
Chris Masone487b8bf2011-05-13 16:27:57 -07009
10#include <base/memory/scoped_ptr.h>
Paul Stewart75897df2011-04-27 09:05:53 -070011
Paul Stewart75897df2011-04-27 09:05:53 -070012#include "shill/shill_event.h"
13#include "shill/service.h"
14#include "shill/device.h"
Paul Stewart0af98bf2011-05-10 17:38:08 -070015#include "shill/device_info.h"
Paul Stewart75897df2011-04-27 09:05:53 -070016
17namespace shill {
18
Paul Stewartd5843772011-05-11 15:40:42 -070019class Manager {
Paul Stewart75897df2011-04-27 09:05:53 -070020 public:
21 // A constructor for the Manager object
22 explicit Manager(ControlInterface *control_interface,
23 EventDispatcher *dispatcher);
24 ~Manager();
25 void Start();
26 void Stop();
27
28 private:
Paul Stewart0af98bf2011-05-10 17:38:08 -070029 scoped_ptr<ManagerAdaptorInterface> adaptor_;
30 DeviceInfo device_info_;
Paul Stewart75897df2011-04-27 09:05:53 -070031 bool running_;
32 std::vector<Device*> devices_;
33 std::vector<Service*> services_;
Chris Masone413a3192011-05-09 17:10:05 -070034 friend class ManagerAdaptorInterface;
Paul Stewart75897df2011-04-27 09:05:53 -070035};
36
37} // namespace shill
38
39#endif // SHILL_MANAGER_