1 // Copyright 2018 The Chromium 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 5 #include "services/service_manager/public/cpp/service_filter_mojom_traits.h" 6 #include "mojo/public/cpp/base/token_mojom_traits.h" 7 8 namespace mojo { 9 10 bool StructTraits<service_manager::mojom::ServiceFilterDataView, 11 service_manager::ServiceFilter>:: Read(service_manager::mojom::ServiceFilterDataView data,service_manager::ServiceFilter * out)12 Read(service_manager::mojom::ServiceFilterDataView data, 13 service_manager::ServiceFilter* out) { 14 std::string service_name; 15 if (!data.ReadServiceName(&service_name)) 16 return false; 17 base::Optional<base::Token> instance_group; 18 if (!data.ReadInstanceGroup(&instance_group)) 19 return false; 20 base::Optional<base::Token> instance_id; 21 if (!data.ReadInstanceId(&instance_id)) 22 return false; 23 base::Optional<base::Token> globally_unique_id; 24 if (!data.ReadGloballyUniqueId(&globally_unique_id)) 25 return false; 26 out->set_service_name(service_name); 27 out->set_instance_group(instance_group); 28 out->set_instance_id(instance_id); 29 out->set_globally_unique_id(globally_unique_id); 30 return true; 31 } 32 33 } // namespace mojo 34