Chromium Code Reviews| Index: components/arc/intent_helper/intent_filter_struct_traits.cc |
| diff --git a/components/arc/intent_helper/intent_filter_struct_traits.cc b/components/arc/intent_helper/intent_filter_struct_traits.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..574b605d20aeb1c5009f6bf375850fd34b53feab |
| --- /dev/null |
| +++ b/components/arc/intent_helper/intent_filter_struct_traits.cc |
| @@ -0,0 +1,58 @@ |
| +// 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. |
| + |
| +#include "components/arc/intent_helper/intent_filter_struct_traits.h" |
| + |
| +#include "base/strings/string_util.h" |
| + |
| +namespace mojo { |
| + |
| +bool StructTraits<arc::mojom::IntentFilterDataView, arc::IntentFilter>:: |
| + Read(arc::mojom::IntentFilterDataView data, |
| + arc::IntentFilter* out) { |
| + std::vector<arc::IntentFilter::AuthorityEntry> authorities; |
| + if (!data.ReadDataAuthorities(&authorities)) |
| + return false; |
| + |
| + std::vector<arc::IntentFilter::PatternMatcher> paths; |
| + if (!data.ReadDataPaths(&paths)) |
| + return false; |
| + |
| + arc::IntentFilter intent_filter(std::move(authorities), std::move(paths)); |
| + *out = std::move(intent_filter); |
|
Luis Héctor Chávez
2016/11/30 23:05:00
You don't need any of the *out = std::move(lvalue)
yoshiki
2016/12/02 19:34:27
Done.
|
| + return true; |
| +} |
| + |
| +bool StructTraits<arc::mojom::AuthorityEntryDataView, |
| + arc::IntentFilter::AuthorityEntry>:: |
| + Read(arc::mojom::AuthorityEntryDataView data, |
| + arc::IntentFilter::AuthorityEntry* out) { |
| + std::string host; |
| + bool result = data.ReadHost(&host); |
| + if (!result) |
| + return false; |
| + |
| + arc::IntentFilter::AuthorityEntry ae(std::move(host), data.port()); |
| + *out = std::move(ae); |
| + return true; |
| +} |
| + |
| +bool StructTraits<arc::mojom::PatternMatcherDataView, |
| + arc::IntentFilter::PatternMatcher>:: |
| + Read(arc::mojom::PatternMatcherDataView data, |
| + arc::IntentFilter::PatternMatcher* out) { |
| + std::string pattern; |
| + if (!data.ReadPattern(&pattern)) |
| + return false; |
| + |
| + arc::mojom::PatternType type; |
| + if (!data.ReadType(&type)) |
| + return false; |
| + |
| + arc::IntentFilter::PatternMatcher pm(std::move(pattern), type); |
| + *out = std::move(pm); |
| + return true; |
| +} |
| + |
| +} // namespace mojo |