blob: c045e29d8a21c20c0da5feb4d903a077f6a8df09 [file] [log] [blame]
Darin Petkovd78ee7e2012-01-12 11:21:10 +01001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
Chris Masoned7732e42011-05-20 11:08:56 -07002// 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_ADAPTOR_INTERFACES_
6#define SHILL_ADAPTOR_INTERFACES_
7
8#include <string>
mukesh agrawal32399322011-09-01 10:53:43 -07009#include <vector>
Chris Masoned7732e42011-05-20 11:08:56 -070010
Chris Masoned0ceb8c2011-06-02 10:05:39 -070011#include <base/basictypes.h>
12
Darin Petkov3cfbf212011-11-21 16:02:09 +010013#include "shill/accessor_interface.h"
14
Chris Masoned7732e42011-05-20 11:08:56 -070015namespace shill {
16
Darin Petkove5bc2cb2011-12-07 14:47:32 +010017class Error;
18
Chris Masone4e851612011-07-01 10:46:53 -070019// These are the functions that a Device adaptor must support
20class DeviceAdaptorInterface {
21 public:
22 virtual ~DeviceAdaptorInterface() {}
23
24 // Getter for the opaque identifier that represents this object on the
25 // RPC interface to which the implementation is adapting.
26 virtual const std::string &GetRpcIdentifier() = 0;
27
28 // Getter for the opaque identifier that represents this object's
29 // connection to the RPC interface to which the implementation is adapting.
30 virtual const std::string &GetRpcConnectionIdentifier() = 0;
31
Darin Petkov3cfbf212011-11-21 16:02:09 +010032 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
33 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
Prathmesh Prabhu700ff4d2014-01-16 15:59:33 -080034 virtual void EmitUint16Changed(const std::string &name, uint16 value) = 0;
Darin Petkov3cfbf212011-11-21 16:02:09 +010035 virtual void EmitIntChanged(const std::string &name, int value) = 0;
36 virtual void EmitStringChanged(const std::string &name,
37 const std::string &value) = 0;
Prathmesh Prabhu9f06c872013-11-21 14:08:23 -080038 virtual void EmitStringmapChanged(const std::string &name,
39 const Stringmap &value) = 0;
Darin Petkov3cfbf212011-11-21 16:02:09 +010040 virtual void EmitStringmapsChanged(const std::string &name,
41 const Stringmaps &value) = 0;
Prathmesh Prabhu700ff4d2014-01-16 15:59:33 -080042 virtual void EmitStringsChanged(const std::string &name,
43 const Strings &value) = 0;
Darin Petkov63138a92012-02-06 14:09:15 +010044 virtual void EmitKeyValueStoreChanged(const std::string &name,
45 const KeyValueStore &value) = 0;
Paul Stewartd4f26482014-04-25 19:12:03 -070046 virtual void EmitRpcIdentifierArrayChanged(
47 const std::string &name, const std::vector<std::string> &value) = 0;
Chris Masone4e851612011-07-01 10:46:53 -070048};
49
50// These are the functions that an IPConfig adaptor must support
51class IPConfigAdaptorInterface {
52 public:
53 virtual ~IPConfigAdaptorInterface() {}
54
55 // Getter for the opaque identifier that represents this object on the
56 // RPC interface to which the implementation is adapting.
57 virtual const std::string &GetRpcIdentifier() = 0;
58
Gaurav Shah435de2c2011-11-17 19:01:07 -080059 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
60 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
61 virtual void EmitIntChanged(const std::string &name, int value) = 0;
62 virtual void EmitStringChanged(const std::string &name,
63 const std::string &value) = 0;
mukesh agrawal7aed61c2013-04-22 16:01:24 -070064 virtual void EmitStringsChanged(const std::string &name,
65 const std::vector<std::string> &value) = 0;
Chris Masone4e851612011-07-01 10:46:53 -070066};
67
Chris Masoned7732e42011-05-20 11:08:56 -070068// These are the functions that a Manager adaptor must support
69class ManagerAdaptorInterface {
70 public:
Chris Masoned7732e42011-05-20 11:08:56 -070071 virtual ~ManagerAdaptorInterface() {}
Chris Masone95207da2011-06-29 16:50:49 -070072
73 // Getter for the opaque identifier that represents this object on the
74 // RPC interface to which the implementation is adapting.
75 virtual const std::string &GetRpcIdentifier() = 0;
76
Chris Masoned0ceb8c2011-06-02 10:05:39 -070077 virtual void UpdateRunning() = 0;
78
Gaurav Shah435de2c2011-11-17 19:01:07 -080079 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
80 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
81 virtual void EmitIntChanged(const std::string &name, int value) = 0;
82 virtual void EmitStringChanged(const std::string &name,
83 const std::string &value) = 0;
84 virtual void EmitStringsChanged(const std::string &name,
85 const std::vector<std::string> &value) = 0;
Paul Stewart49739c02012-08-08 17:24:03 -070086 virtual void EmitRpcIdentifierChanged(
87 const std::string &name,
88 const std::string &value) = 0;
mukesh agrawal32399322011-09-01 10:53:43 -070089 virtual void EmitRpcIdentifierArrayChanged(
90 const std::string &name,
91 const std::vector<std::string> &value) = 0;
Chris Masoned0ceb8c2011-06-02 10:05:39 -070092
Gaurav Shah435de2c2011-11-17 19:01:07 -080093 virtual void EmitStateChanged(const std::string &new_state) = 0;
Chris Masoned7732e42011-05-20 11:08:56 -070094};
95
Chris Masone52cd19b2011-06-29 17:23:04 -070096// These are the functions that a Profile adaptor must support
97class ProfileAdaptorInterface {
98 public:
99 virtual ~ProfileAdaptorInterface() {}
100
Chris Masonec6c6c132011-06-30 11:29:52 -0700101 // Getter for the opaque identifier that represents this object on the
102 // RPC interface to which the implementation is adapting.
103 virtual const std::string &GetRpcIdentifier() = 0;
104
Gaurav Shah435de2c2011-11-17 19:01:07 -0800105 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
106 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
107 virtual void EmitIntChanged(const std::string &name, int value) = 0;
108 virtual void EmitStringChanged(const std::string &name,
109 const std::string &value) = 0;
Chris Masonec6c6c132011-06-30 11:29:52 -0700110};
111
Darin Petkova9b1fed2012-02-29 11:49:05 +0100112// These are the functions that a RPCTask adaptor must support.
113class RPCTaskAdaptorInterface {
114 public:
115 virtual ~RPCTaskAdaptorInterface() {}
116
117 // Getter for the opaque identifier that represents this object on the
118 // RPC interface to which the implementation is adapting.
119 virtual const std::string &GetRpcIdentifier() = 0;
120
121 virtual const std::string &GetRpcInterfaceIdentifier() = 0;
122
123 // Getter for the opaque identifier that represents this object's
124 // connection to the RPC interface to which the implementation is adapting.
125 virtual const std::string &GetRpcConnectionIdentifier() = 0;
126};
127
Chris Masone4e851612011-07-01 10:46:53 -0700128// These are the functions that a Service adaptor must support
129class ServiceAdaptorInterface {
Chris Masonec6c6c132011-06-30 11:29:52 -0700130 public:
Chris Masone4e851612011-07-01 10:46:53 -0700131 virtual ~ServiceAdaptorInterface() {}
Chris Masonec6c6c132011-06-30 11:29:52 -0700132
133 // Getter for the opaque identifier that represents this object on the
134 // RPC interface to which the implementation is adapting.
135 virtual const std::string &GetRpcIdentifier() = 0;
136
Chris Masone4e851612011-07-01 10:46:53 -0700137 virtual void UpdateConnected() = 0;
138
Gaurav Shah435de2c2011-11-17 19:01:07 -0800139 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
Darin Petkovd78ee7e2012-01-12 11:21:10 +0100140 virtual void EmitUint8Changed(const std::string &name, uint8 value) = 0;
mukesh agrawale1d90e92012-02-15 17:36:08 -0800141 virtual void EmitUint16Changed(const std::string &name, uint16 value) = 0;
mukesh agrawale7c7e652013-06-18 17:19:39 -0700142 virtual void EmitUint16sChanged(const std::string &name,
143 const Uint16s &value) = 0;
Gaurav Shah435de2c2011-11-17 19:01:07 -0800144 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
145 virtual void EmitIntChanged(const std::string &name, int value) = 0;
Paul Stewart1e3bc4962012-09-14 12:20:22 -0700146 virtual void EmitRpcIdentifierChanged(const std::string &name,
147 const std::string &value) = 0;
Gaurav Shah435de2c2011-11-17 19:01:07 -0800148 virtual void EmitStringChanged(const std::string &name,
149 const std::string &value) = 0;
Darin Petkov9cb02682012-01-28 00:17:38 +0100150 virtual void EmitStringmapChanged(const std::string &name,
151 const Stringmap &value) = 0;
Chris Masone52cd19b2011-06-29 17:23:04 -0700152};
153
Chris Masoned7732e42011-05-20 11:08:56 -0700154} // namespace shill
155#endif // SHILL_ADAPTOR_INTERFACES_