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

Unified Diff: components/arc/intent_helper/intent_filter_struct_traits.h

Issue 2556463003: Use mojo typemaps to simplify arc::IntentFilter::IntentFilter() (reland) (Closed)
Patch Set: Rebased Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: components/arc/intent_helper/intent_filter_struct_traits.h
diff --git a/components/arc/intent_helper/intent_filter_struct_traits.h b/components/arc/intent_helper/intent_filter_struct_traits.h
new file mode 100644
index 0000000000000000000000000000000000000000..ca9ba9c1dc93c4c42f72542825d13402d67079a1
--- /dev/null
+++ b/components/arc/intent_helper/intent_filter_struct_traits.h
@@ -0,0 +1,79 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENT_ARC_INTENT_FILTER_INTENT_FILTER_STRUCT_TRAITS_H_
+#define COMPONENT_ARC_INTENT_FILTER_INTENT_FILTER_STRUCT_TRAITS_H_
+
+#include "components/arc/common/intent_helper.mojom.h"
+#include "components/arc/intent_helper/intent_filter.h"
+
+namespace mojo {
+
+template <>
+struct StructTraits<arc::mojom::IntentFilterDataView, arc::IntentFilter> {
+ static const mojo::CArray<std::string> actions(const arc::IntentFilter& r) {
+ // Returns an empty array.
+ return mojo::CArray<std::string>();
+ }
+ static const mojo::CArray<std::string> categories(
+ const arc::IntentFilter& r) {
+ // Returns an empty array.
+ return mojo::CArray<std::string>();
+ }
+ static const mojo::CArray<std::string> data_schemes(
+ const arc::IntentFilter& r) {
+ // Returns an empty array.
+ return mojo::CArray<std::string>();
+ }
+ static const std::vector<arc::IntentFilter::AuthorityEntry>& data_authorities(
+ const arc::IntentFilter& r) {
+ return r.authorities();
+ }
+ static const std::vector<arc::IntentFilter::PatternMatcher>& data_paths(
+ const arc::IntentFilter& r) {
+ return r.paths();
+ }
+ static const mojo::CArray<arc::IntentFilter::PatternMatcher>
+ deprecated_data_scheme_specific_parts(const arc::IntentFilter& r) {
+ // Returns an empty array.
+ return mojo::CArray<arc::IntentFilter::PatternMatcher>();
+ }
+
+ static bool Read(arc::mojom::IntentFilterDataView data,
+ arc::IntentFilter* out);
+};
+
+template <>
+struct StructTraits<arc::mojom::AuthorityEntryDataView,
+ arc::IntentFilter::AuthorityEntry> {
+ static const std::string& host(const arc::IntentFilter::AuthorityEntry& r) {
+ return r.host();
+ }
+ static int32_t port(const arc::IntentFilter::AuthorityEntry& r) {
+ return r.port();
+ }
+
+ static bool Read(arc::mojom::AuthorityEntryDataView data,
+ arc::IntentFilter::AuthorityEntry* out);
+};
+
+template <>
+struct StructTraits<arc::mojom::PatternMatcherDataView,
+ arc::IntentFilter::PatternMatcher> {
+ static const std::string& pattern(
+ const arc::IntentFilter::PatternMatcher& r) {
+ return r.pattern();
+ }
+ static arc::mojom::PatternType type(
+ const arc::IntentFilter::PatternMatcher& r) {
+ return r.match_type();
+ }
+
+ static bool Read(arc::mojom::PatternMatcherDataView data,
+ arc::IntentFilter::PatternMatcher* out);
+};
+
+} // namespace mojo
+
+#endif // COMPONENT_ARC_INTENT_FILTER_INTENT_FILTER_STRUCT_TRAITS_H_
« no previous file with comments | « components/arc/intent_helper/intent_filter.cc ('k') | components/arc/intent_helper/intent_filter_struct_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698