| /* |
| * Copyright (C) 2020 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #include "src/trace_processor/analysis/describe_slice.h" |
| |
| namespace perfetto { |
| namespace trace_processor { |
| |
| util::Status DescribeSlice(const tables::SliceTable& table, |
| tables::SliceTable::Id id, |
| base::Optional<SliceDescription>* description) { |
| auto opt_row = table.id().IndexOf(id); |
| if (!opt_row) |
| return util::ErrStatus("Unable to find slice id"); |
| |
| uint32_t row = *opt_row; |
| |
| base::StringView name = table.name().GetString(row); |
| if (name == "inflate") { |
| *description = SliceDescription{ |
| "Constructing a View hierarchy from pre-processed XML via " |
| "LayoutInflater#layout. This includes constructing all of the View " |
| "objects in the hierarchy, and applying styled attributes.", |
| ""}; |
| return util::OkStatus(); |
| } |
| |
| if (name == "measure") { |
| *description = SliceDescription{ |
| "First of two phases in view hierarchy layout. Views are asked to size " |
| "themselves according to constraints supplied by their parent. Some " |
| "ViewGroups may measure a child more than once to help satisfy their " |
| "own constraints. Nesting ViewGroups that measure children more than " |
| "once can lead to excessive and repeated work.", |
| "https://developer.android.com/reference/android/view/" |
| "View.html#Layout"}; |
| return util::OkStatus(); |
| } |
| |
| *description = base::nullopt; |
| return util::OkStatus(); |
| } |
| |
| } // namespace trace_processor |
| } // namespace perfetto |