1 /*
2  * Copyright (C) 2015 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 package com.android.tradefed.util.hostmetric;
17 
18 /**
19  * Interface to dispatch host data
20  */
21 public interface IHostMonitor {
22 
23     public enum HostMetricType {
24         NONE,
25         INVOCATION_STRAY_THREAD,
26     }
27 
28     /**
29      * A method that will be called after all of the Monitor's @Option fields have been set.
30      */
start()31     public void start();
32 
33     /** A method that will be called to add a special event to be sent. */
addHostEvent(HostMetricType tag, HostDataPoint event)34     public void addHostEvent(HostMetricType tag, HostDataPoint event);
35 
36     /**
37      * A method that will be called to stop the Host Monitor.
38      */
terminate()39     public void terminate();
40 
41     /** Generic class for data to be reported. */
42     public static class HostDataPoint {
43         public String name;
44         public int value;
45         public String additionalInfo = null;
46 
HostDataPoint(String name, int value)47         public HostDataPoint(String name, int value) {
48             this.name = name;
49             this.value = value;
50         }
51 
HostDataPoint(String name, int value, String additionalInfo)52         public HostDataPoint(String name, int value, String additionalInfo) {
53             this.name = name;
54             this.value = value;
55             this.additionalInfo = additionalInfo;
56         }
57 
58         @Override
toString()59         public String toString() {
60             return "dataPoint [name=" + name + ", value=" + value + "]";
61         }
62     }
63 }
64