This repository was archived by the owner on Nov 14, 2018. It is now read-only.
File tree 3 files changed +85
-0
lines changed
androidTest/java/androidx/core/util
main/java/androidx/core/util
3 files changed +85
-0
lines changed Original file line number Diff line number Diff line change @@ -589,6 +589,12 @@ package androidx.core.util {
589
589
method @RequiresApi(18) public static kotlin.collections.LongIterator valueIterator(android.util.SparseLongArray);
590
590
}
591
591
592
+ public final class TimingLoggerKt {
593
+ ctor public TimingLoggerKt();
594
+ method public static void log(android.util.TimingLogger, kotlin.jvm.functions.Function1<? super android.util.TimingLogger,kotlin.Unit> work);
595
+ method public static void split(android.util.TimingLogger, String splitLabel, kotlin.jvm.functions.Function0<kotlin.Unit> work);
596
+ }
597
+
592
598
}
593
599
594
600
package androidx.core.view {
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (C) 2018 The Android Open Source Project
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ package androidx.core.util
18
+
19
+ import android.util.TimingLogger
20
+ import org.junit.Assert.assertTrue
21
+ import org.junit.Test
22
+
23
+ class TimingLoggerTest {
24
+ @Test fun timingLogger () {
25
+ val called = arrayOf(false , false , false )
26
+
27
+ val timingLogger = TimingLogger (" TAG" , " methodA" )
28
+ timingLogger.log {
29
+ split(" work A" ) {
30
+ called[0 ] = true
31
+ }
32
+ split(" work B" ) {
33
+ called[1 ] = true
34
+ }
35
+ split(" work C" ) {
36
+ called[2 ] = true
37
+ }
38
+ }
39
+
40
+ assertTrue(called.reduce(Boolean ::and ))
41
+ }
42
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (C) 2018 The Android Open Source Project
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ package androidx.core.util
18
+
19
+ import android.util.TimingLogger
20
+
21
+ /* *
22
+ * Resets the timing logger instance before timing each of the given splits and subsequently
23
+ * dumping the results to the log output.
24
+ */
25
+ inline fun TimingLogger.log (work : TimingLogger .() -> Unit ) {
26
+ this .reset()
27
+ work()
28
+ this .dumpToLog()
29
+ }
30
+
31
+ /* *
32
+ * Times the given work and subsequently adds a split to the timing logger instance.
33
+ */
34
+ inline fun TimingLogger.split (splitLabel : String , work : () -> Unit ) {
35
+ work()
36
+ this .addSplit(splitLabel)
37
+ }
You can’t perform that action at this time.
0 commit comments