blob: 9847705268460a692310b39cc56614a3b339ff77 [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>
Paul Stewart0af98bf2011-05-10 17:38:08 -07009#include <base/scoped_ptr.h>
Paul Stewart75897df2011-04-27 09:05:53 -070010
11#include "shill/resource.h"
12#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
19class Manager : public Resource {
20 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_