Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: third_party/WebKit/Source/platform/exported/WebMediaConstraints.cpp

Issue 2799553002: Provide a std::vector compliant empty() method for WebVector. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 } 107 }
108 108
109 WebMediaConstraintsPrivate::WebMediaConstraintsPrivate( 109 WebMediaConstraintsPrivate::WebMediaConstraintsPrivate(
110 const WebMediaTrackConstraintSet& basic, 110 const WebMediaTrackConstraintSet& basic,
111 const WebVector<WebMediaTrackConstraintSet>& advanced) 111 const WebVector<WebMediaTrackConstraintSet>& advanced)
112 : m_basic(basic), m_advanced(advanced) {} 112 : m_basic(basic), m_advanced(advanced) {}
113 113
114 bool WebMediaConstraintsPrivate::isEmpty() const { 114 bool WebMediaConstraintsPrivate::isEmpty() const {
115 // TODO(hta): When generating advanced constraints, make sure no empty 115 // TODO(hta): When generating advanced constraints, make sure no empty
116 // elements can be added to the m_advanced vector. 116 // elements can be added to the m_advanced vector.
117 return m_basic.isEmpty() && m_advanced.isEmpty(); 117 return m_basic.isEmpty() && m_advanced.empty();
118 } 118 }
119 119
120 const WebMediaTrackConstraintSet& WebMediaConstraintsPrivate::basic() const { 120 const WebMediaTrackConstraintSet& WebMediaConstraintsPrivate::basic() const {
121 return m_basic; 121 return m_basic;
122 } 122 }
123 123
124 const WebVector<WebMediaTrackConstraintSet>& 124 const WebVector<WebMediaTrackConstraintSet>&
125 WebMediaConstraintsPrivate::advanced() const { 125 WebMediaConstraintsPrivate::advanced() const {
126 return m_advanced; 126 return m_advanced;
127 } 127 }
128 128
129 const String WebMediaConstraintsPrivate::toString() const { 129 const String WebMediaConstraintsPrivate::toString() const {
130 StringBuilder builder; 130 StringBuilder builder;
131 if (!isEmpty()) { 131 if (!isEmpty()) {
132 builder.append('{'); 132 builder.append('{');
133 builder.append(basic().toString()); 133 builder.append(basic().toString());
134 if (!advanced().isEmpty()) { 134 if (!advanced().empty()) {
135 if (builder.length() > 1) 135 if (builder.length() > 1)
136 builder.append(", "); 136 builder.append(", ");
137 builder.append("advanced: ["); 137 builder.append("advanced: [");
138 bool first = true; 138 bool first = true;
139 for (const auto& constraintSet : advanced()) { 139 for (const auto& constraintSet : advanced()) {
140 if (!first) 140 if (!first)
141 builder.append(", "); 141 builder.append(", ");
142 builder.append('{'); 142 builder.append('{');
143 builder.append(constraintSet.toString()); 143 builder.append(constraintSet.toString());
144 builder.append('}'); 144 builder.append('}');
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 maybeEmitNamedValue(builder, m_hasExact, "exact", m_exact); 243 maybeEmitNamedValue(builder, m_hasExact, "exact", m_exact);
244 maybeEmitNamedValue(builder, m_hasIdeal, "ideal", m_ideal); 244 maybeEmitNamedValue(builder, m_hasIdeal, "ideal", m_ideal);
245 builder.append('}'); 245 builder.append('}');
246 return builder.toString(); 246 return builder.toString();
247 } 247 }
248 248
249 StringConstraint::StringConstraint(const char* name) 249 StringConstraint::StringConstraint(const char* name)
250 : BaseConstraint(name), m_exact(), m_ideal() {} 250 : BaseConstraint(name), m_exact(), m_ideal() {}
251 251
252 bool StringConstraint::matches(WebString value) const { 252 bool StringConstraint::matches(WebString value) const {
253 if (m_exact.isEmpty()) { 253 if (m_exact.empty()) {
254 return true; 254 return true;
255 } 255 }
256 for (const auto& choice : m_exact) { 256 for (const auto& choice : m_exact) {
257 if (value == choice) { 257 if (value == choice) {
258 return true; 258 return true;
259 } 259 }
260 } 260 }
261 return false; 261 return false;
262 } 262 }
263 263
264 bool StringConstraint::isEmpty() const { 264 bool StringConstraint::isEmpty() const {
265 return m_exact.isEmpty() && m_ideal.isEmpty(); 265 return m_exact.empty() && m_ideal.empty();
266 } 266 }
267 267
268 bool StringConstraint::hasMandatory() const { 268 bool StringConstraint::hasMandatory() const {
269 return !m_exact.isEmpty(); 269 return !m_exact.empty();
270 } 270 }
271 271
272 const WebVector<WebString>& StringConstraint::exact() const { 272 const WebVector<WebString>& StringConstraint::exact() const {
273 return m_exact; 273 return m_exact;
274 } 274 }
275 275
276 const WebVector<WebString>& StringConstraint::ideal() const { 276 const WebVector<WebString>& StringConstraint::ideal() const {
277 return m_ideal; 277 return m_ideal;
278 } 278 }
279 279
280 WebString StringConstraint::toString() const { 280 WebString StringConstraint::toString() const {
281 StringBuilder builder; 281 StringBuilder builder;
282 builder.append('{'); 282 builder.append('{');
283 if (!m_ideal.isEmpty()) { 283 if (!m_ideal.empty()) {
284 builder.append("ideal: ["); 284 builder.append("ideal: [");
285 bool first = true; 285 bool first = true;
286 for (const auto& iter : m_ideal) { 286 for (const auto& iter : m_ideal) {
287 if (!first) 287 if (!first)
288 builder.append(", "); 288 builder.append(", ");
289 builder.append('"'); 289 builder.append('"');
290 builder.append(iter); 290 builder.append(iter);
291 builder.append('"'); 291 builder.append('"');
292 first = false; 292 first = false;
293 } 293 }
294 builder.append(']'); 294 builder.append(']');
295 } 295 }
296 if (!m_exact.isEmpty()) { 296 if (!m_exact.empty()) {
297 if (builder.length() > 1) 297 if (builder.length() > 1)
298 builder.append(", "); 298 builder.append(", ");
299 builder.append("exact: ["); 299 builder.append("exact: [");
300 bool first = true; 300 bool first = true;
301 for (const auto& iter : m_exact) { 301 for (const auto& iter : m_exact) {
302 if (!first) 302 if (!first)
303 builder.append(", "); 303 builder.append(", ");
304 builder.append('"'); 304 builder.append('"');
305 builder.append(iter); 305 builder.append(iter);
306 builder.append('"'); 306 builder.append('"');
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 return m_private->advanced(); 548 return m_private->advanced();
549 } 549 }
550 550
551 const WebString WebMediaConstraints::toString() const { 551 const WebString WebMediaConstraints::toString() const {
552 if (isNull()) 552 if (isNull())
553 return WebString(""); 553 return WebString("");
554 return m_private->toString(); 554 return m_private->toString();
555 } 555 }
556 556
557 } // namespace blink 557 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/testing/Internals.cpp ('k') | third_party/WebKit/Source/web/ExternalPopupMenu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698