blob: 86a0d450707d3cadd4ec4f7c50e5b76e6844ae53 [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
32 virtual void UpdateEnabled() = 0;
33
Darin Petkov3cfbf212011-11-21 16:02:09 +010034 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
35 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
36 virtual void EmitIntChanged(const std::string &name, int value) = 0;
37 virtual void EmitStringChanged(const std::string &name,
38 const std::string &value) = 0;
39 virtual void EmitStringmapsChanged(const std::string &name,
40 const Stringmaps &value) = 0;
Darin Petkov63138a92012-02-06 14:09:15 +010041 virtual void EmitKeyValueStoreChanged(const std::string &name,
42 const KeyValueStore &value) = 0;
Chris Masone4e851612011-07-01 10:46:53 -070043};
44
45// These are the functions that an IPConfig adaptor must support
46class IPConfigAdaptorInterface {
47 public:
48 virtual ~IPConfigAdaptorInterface() {}
49
50 // Getter for the opaque identifier that represents this object on the
51 // RPC interface to which the implementation is adapting.
52 virtual const std::string &GetRpcIdentifier() = 0;
53
Gaurav Shah435de2c2011-11-17 19:01:07 -080054 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
55 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
56 virtual void EmitIntChanged(const std::string &name, int value) = 0;
57 virtual void EmitStringChanged(const std::string &name,
58 const std::string &value) = 0;
mukesh agrawal7aed61c2013-04-22 16:01:24 -070059 virtual void EmitStringsChanged(const std::string &name,
60 const std::vector<std::string> &value) = 0;
Chris Masone4e851612011-07-01 10:46:53 -070061};
62
Chris Masoned7732e42011-05-20 11:08:56 -070063// These are the functions that a Manager adaptor must support
64class ManagerAdaptorInterface {
65 public:
Chris Masoned7732e42011-05-20 11:08:56 -070066 virtual ~ManagerAdaptorInterface() {}
Chris Masone95207da2011-06-29 16:50:49 -070067
68 // Getter for the opaque identifier that represents this object on the
69 // RPC interface to which the implementation is adapting.
70 virtual const std::string &GetRpcIdentifier() = 0;
71
Chris Masoned0ceb8c2011-06-02 10:05:39 -070072 virtual void UpdateRunning() = 0;
73
Gaurav Shah435de2c2011-11-17 19:01:07 -080074 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
75 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
76 virtual void EmitIntChanged(const std::string &name, int value) = 0;
77 virtual void EmitStringChanged(const std::string &name,
78 const std::string &value) = 0;
79 virtual void EmitStringsChanged(const std::string &name,
80 const std::vector<std::string> &value) = 0;
Paul Stewart49739c02012-08-08 17:24:03 -070081 virtual void EmitRpcIdentifierChanged(
82 const std::string &name,
83 const std::string &value) = 0;
mukesh agrawal32399322011-09-01 10:53:43 -070084 virtual void EmitRpcIdentifierArrayChanged(
85 const std::string &name,
86 const std::vector<std::string> &value) = 0;
Chris Masoned0ceb8c2011-06-02 10:05:39 -070087
Gaurav Shah435de2c2011-11-17 19:01:07 -080088 virtual void EmitStateChanged(const std::string &new_state) = 0;
Chris Masoned7732e42011-05-20 11:08:56 -070089};
90
Chris Masone52cd19b2011-06-29 17:23:04 -070091// These are the functions that a Profile adaptor must support
92class ProfileAdaptorInterface {
93 public:
94 virtual ~ProfileAdaptorInterface() {}
95
Chris Masonec6c6c132011-06-30 11:29:52 -070096 // Getter for the opaque identifier that represents this object on the
97 // RPC interface to which the implementation is adapting.
98 virtual const std::string &GetRpcIdentifier() = 0;
99
Gaurav Shah435de2c2011-11-17 19:01:07 -0800100 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
101 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
102 virtual void EmitIntChanged(const std::string &name, int value) = 0;
103 virtual void EmitStringChanged(const std::string &name,
104 const std::string &value) = 0;
Chris Masonec6c6c132011-06-30 11:29:52 -0700105};
106
Darin Petkova9b1fed2012-02-29 11:49:05 +0100107// These are the functions that a RPCTask adaptor must support.
108class RPCTaskAdaptorInterface {
109 public:
110 virtual ~RPCTaskAdaptorInterface() {}
111
112 // Getter for the opaque identifier that represents this object on the
113 // RPC interface to which the implementation is adapting.
114 virtual const std::string &GetRpcIdentifier() = 0;
115
116 virtual const std::string &GetRpcInterfaceIdentifier() = 0;
117
118 // Getter for the opaque identifier that represents this object's
119 // connection to the RPC interface to which the implementation is adapting.
120 virtual const std::string &GetRpcConnectionIdentifier() = 0;
121};
122
Chris Masone4e851612011-07-01 10:46:53 -0700123// These are the functions that a Service adaptor must support
124class ServiceAdaptorInterface {
Chris Masonec6c6c132011-06-30 11:29:52 -0700125 public:
Chris Masone4e851612011-07-01 10:46:53 -0700126 virtual ~ServiceAdaptorInterface() {}
Chris Masonec6c6c132011-06-30 11:29:52 -0700127
128 // Getter for the opaque identifier that represents this object on the
129 // RPC interface to which the implementation is adapting.
130 virtual const std::string &GetRpcIdentifier() = 0;
131
Chris Masone4e851612011-07-01 10:46:53 -0700132 virtual void UpdateConnected() = 0;
133
Gaurav Shah435de2c2011-11-17 19:01:07 -0800134 virtual void EmitBoolChanged(const std::string &name, bool value) = 0;
Darin Petkovd78ee7e2012-01-12 11:21:10 +0100135 virtual void EmitUint8Changed(const std::string &name, uint8 value) = 0;
mukesh agrawale1d90e92012-02-15 17:36:08 -0800136 virtual void EmitUint16Changed(const std::string &name, uint16 value) = 0;
Gaurav Shah435de2c2011-11-17 19:01:07 -0800137 virtual void EmitUintChanged(const std::string &name, uint32 value) = 0;
138 virtual void EmitIntChanged(const std::string &name, int value) = 0;
Paul Stewart1e3bc4962012-09-14 12:20:22 -0700139 virtual void EmitRpcIdentifierChanged(const std::string &name,
140 const std::string &value) = 0;
Gaurav Shah435de2c2011-11-17 19:01:07 -0800141 virtual void EmitStringChanged(const std::string &name,
142 const std::string &value) = 0;
Darin Petkov9cb02682012-01-28 00:17:38 +0100143 virtual void EmitStringmapChanged(const std::string &name,
144 const Stringmap &value) = 0;
Chris Masone52cd19b2011-06-29 17:23:04 -0700145};
146
Chris Masoned7732e42011-05-20 11:08:56 -0700147} // namespace shill
148#endif // SHILL_ADAPTOR_INTERFACES_