Wade Guthrie | 1619624 | 2012-11-20 15:53:52 -0800 | [diff] [blame] | 1 | // Copyright (c) 2012 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 | |
Wade Guthrie | f162f8b | 2013-02-27 14:13:55 -0800 | [diff] [blame^] | 5 | #ifndef SHILL_NL80211_ATTRIBUTE_H_ |
| 6 | #define SHILL_NL80211_ATTRIBUTE_H_ |
Wade Guthrie | 1619624 | 2012-11-20 15:53:52 -0800 | [diff] [blame] | 7 | |
Wade Guthrie | 8343f7f | 2012-12-04 13:52:32 -0800 | [diff] [blame] | 8 | #include <netlink/attr.h> |
Wade Guthrie | 1619624 | 2012-11-20 15:53:52 -0800 | [diff] [blame] | 9 | |
Wade Guthrie | f162f8b | 2013-02-27 14:13:55 -0800 | [diff] [blame^] | 10 | #include "shill/netlink_attribute.h" |
Wade Guthrie | efe1f0c | 2013-02-26 17:42:01 -0800 | [diff] [blame] | 11 | #include "shill/refptr_types.h" |
Wade Guthrie | 1619624 | 2012-11-20 15:53:52 -0800 | [diff] [blame] | 12 | |
| 13 | struct nlattr; |
| 14 | |
| 15 | namespace shill { |
| 16 | |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 17 | // U8. |
Wade Guthrie | 1619624 | 2012-11-20 15:53:52 -0800 | [diff] [blame] | 18 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 19 | class Nl80211AttributeKeyIdx : public NetlinkU8Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 20 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 21 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 22 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 23 | Nl80211AttributeKeyIdx() : NetlinkU8Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 24 | }; |
| 25 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 26 | class Nl80211AttributeRegType : public NetlinkU8Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 27 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 28 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 29 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 30 | Nl80211AttributeRegType() : NetlinkU8Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 31 | }; |
| 32 | |
| 33 | // U16. |
| 34 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 35 | class Nl80211AttributeReasonCode : public NetlinkU16Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 36 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 37 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 38 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 39 | Nl80211AttributeReasonCode() : NetlinkU16Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 40 | }; |
| 41 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 42 | class Nl80211AttributeStatusCode : public NetlinkU16Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 43 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 44 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 45 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 46 | Nl80211AttributeStatusCode() : NetlinkU16Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 47 | }; |
| 48 | |
| 49 | // U32. |
| 50 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 51 | class Nl80211AttributeDuration : public NetlinkU32Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 52 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 53 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 54 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 55 | Nl80211AttributeDuration() : NetlinkU32Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 56 | }; |
| 57 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 58 | class Nl80211AttributeGeneration : public NetlinkU32Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 59 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 60 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 61 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 62 | Nl80211AttributeGeneration() : NetlinkU32Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 63 | }; |
| 64 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 65 | class Nl80211AttributeIfindex : public NetlinkU32Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 66 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 67 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 68 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 69 | Nl80211AttributeIfindex() : NetlinkU32Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 70 | }; |
| 71 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 72 | class Nl80211AttributeKeyType : public NetlinkU32Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 73 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 74 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 75 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 76 | Nl80211AttributeKeyType() : NetlinkU32Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 77 | }; |
| 78 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 79 | class Nl80211AttributeRegInitiator : public NetlinkU32Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 80 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 81 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 82 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 83 | Nl80211AttributeRegInitiator() : NetlinkU32Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 84 | }; |
| 85 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 86 | class Nl80211AttributeWiphy : public NetlinkU32Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 87 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 88 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 89 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 90 | Nl80211AttributeWiphy() : NetlinkU32Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 91 | }; |
| 92 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 93 | class Nl80211AttributeWiphyFreq : public NetlinkU32Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 94 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 95 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 96 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 97 | Nl80211AttributeWiphyFreq() : NetlinkU32Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 98 | }; |
| 99 | |
| 100 | // U64. |
| 101 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 102 | class Nl80211AttributeCookie : public NetlinkU64Attribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 103 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 104 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 105 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 106 | Nl80211AttributeCookie() : NetlinkU64Attribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 107 | }; |
| 108 | |
| 109 | // Flag. |
| 110 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 111 | class Nl80211AttributeDisconnectedByAp : public NetlinkFlagAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 112 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 113 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 114 | static const char kNameString[]; |
| 115 | Nl80211AttributeDisconnectedByAp() : |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 116 | NetlinkFlagAttribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 117 | }; |
| 118 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 119 | class Nl80211AttributeSupportMeshAuth : public NetlinkFlagAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 120 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 121 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 122 | static const char kNameString[]; |
| 123 | Nl80211AttributeSupportMeshAuth() : |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 124 | NetlinkFlagAttribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 125 | }; |
| 126 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 127 | class Nl80211AttributeTimedOut : public NetlinkFlagAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 128 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 129 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 130 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 131 | Nl80211AttributeTimedOut() : NetlinkFlagAttribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 132 | }; |
| 133 | |
| 134 | // String. |
| 135 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 136 | class Nl80211AttributeRegAlpha2 : public NetlinkStringAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 137 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 138 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 139 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 140 | Nl80211AttributeRegAlpha2() : NetlinkStringAttribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 141 | }; |
| 142 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 143 | class Nl80211AttributeWiphyName : public NetlinkStringAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 144 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 145 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 146 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 147 | Nl80211AttributeWiphyName() : NetlinkStringAttribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 148 | }; |
| 149 | |
repo sync | 12cca80 | 2012-12-19 17:34:22 -0800 | [diff] [blame] | 150 | // Nested. |
| 151 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 152 | class Nl80211AttributeCqm : public NetlinkNestedAttribute { |
repo sync | 12cca80 | 2012-12-19 17:34:22 -0800 | [diff] [blame] | 153 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 154 | static const int kName; |
repo sync | 12cca80 | 2012-12-19 17:34:22 -0800 | [diff] [blame] | 155 | static const char kNameString[]; |
| 156 | Nl80211AttributeCqm(); |
Wade Guthrie | d3dfd6c | 2013-02-28 17:40:36 -0800 | [diff] [blame] | 157 | virtual bool InitFromNlAttr(const nlattr *data); |
| 158 | }; |
| 159 | |
| 160 | class Nl80211AttributeScanFrequencies : public NetlinkNestedAttribute { |
| 161 | public: |
| 162 | static const int kName; |
| 163 | static const char kNameString[]; |
| 164 | explicit Nl80211AttributeScanFrequencies(); |
| 165 | virtual bool InitFromNlAttr(const nlattr *const_data); |
| 166 | }; |
| 167 | |
| 168 | class Nl80211AttributeScanSsids : public NetlinkNestedAttribute { |
| 169 | public: |
| 170 | static const int kName; |
| 171 | static const char kNameString[]; |
| 172 | explicit Nl80211AttributeScanSsids(); |
| 173 | virtual bool InitFromNlAttr(const nlattr *const_data); |
repo sync | 12cca80 | 2012-12-19 17:34:22 -0800 | [diff] [blame] | 174 | }; |
| 175 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 176 | class Nl80211AttributeStaInfo : public NetlinkNestedAttribute { |
repo sync | 12cca80 | 2012-12-19 17:34:22 -0800 | [diff] [blame] | 177 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 178 | static const int kName; |
repo sync | 12cca80 | 2012-12-19 17:34:22 -0800 | [diff] [blame] | 179 | static const char kNameString[]; |
Wade Guthrie | d3dfd6c | 2013-02-28 17:40:36 -0800 | [diff] [blame] | 180 | Nl80211AttributeStaInfo(); |
| 181 | virtual bool InitFromNlAttr(const nlattr *const_data); |
repo sync | 12cca80 | 2012-12-19 17:34:22 -0800 | [diff] [blame] | 182 | }; |
| 183 | |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 184 | // Raw. |
| 185 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 186 | class Nl80211AttributeFrame : public NetlinkRawAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 187 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 188 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 189 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 190 | Nl80211AttributeFrame() : NetlinkRawAttribute(kName, kNameString) {} |
Wade Guthrie | 1619624 | 2012-11-20 15:53:52 -0800 | [diff] [blame] | 191 | }; |
| 192 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 193 | class Nl80211AttributeKeySeq : public NetlinkRawAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 194 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 195 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 196 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 197 | Nl80211AttributeKeySeq() : NetlinkRawAttribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 198 | }; |
| 199 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 200 | class Nl80211AttributeMac : public NetlinkRawAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 201 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 202 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 203 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 204 | Nl80211AttributeMac() : NetlinkRawAttribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 205 | }; |
| 206 | |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 207 | class Nl80211AttributeRespIe : public NetlinkRawAttribute { |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 208 | public: |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 209 | static const int kName; |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 210 | static const char kNameString[]; |
Wade Guthrie | 68da97c | 2013-02-26 13:09:35 -0800 | [diff] [blame] | 211 | Nl80211AttributeRespIe() : NetlinkRawAttribute(kName, kNameString) {} |
Wade Guthrie | 25cdb38 | 2012-12-04 14:04:05 -0800 | [diff] [blame] | 212 | }; |
| 213 | |
Wade Guthrie | 1619624 | 2012-11-20 15:53:52 -0800 | [diff] [blame] | 214 | } // namespace shill |
| 215 | |
| 216 | #endif // SHILL_NLATTRIBUTE_H_ |