Home | History | Annotate | Download | only in aupt
      1 /*
      2  * Copyright (C) 2014 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
      5  * use this file except in compliance with the License. You may obtain a copy of
      6  * 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, WITHOUT
     12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     13  * License for the specific language governing permissions and limitations under
     14  * the License.
     15  */
     16 
     17 package android.support.test.aupt;
     18 
     19 import java.util.List;
     20 
     21 /**
     22  * Interface that defines contract of tracking process ids
     23  */
     24 public interface IProcessStatusTracker {
     25 
     26     public enum ProcessStatus {PROC_DIED, PROC_RESTARTED, PROC_NOT_STARTED, PROC_STARTED, PROC_OK};
     27 
     28     public class ProcessDetails {
     29         public ProcessStatus processStatus;
     30         public String processName;
     31         public int pid0, pid1;
     32     }
     33 
     34     /**
     35      * add the named process to watch list
     36      * @param processName name of the application process
     37      */
     38     public void addMonitoredProcess(String processName);
     39     /**
     40      * get the details of processes on the watch list
     41      * @return a list of {@link ProcessDetails} describing each process on the watch list
     42      */
     43     public List<ProcessDetails> getProcessDetails();
     44     /**
     45      * Enable monitoring of process id changes of the named process
     46      *
     47      * Initially all process should be disabled for monitoring pid changes, since it may be running
     48      * as a bg service and may be disposed of at anytime. Once an app has been launched into
     49      * foreground, it should be enabled for pid monitoring
     50      * @param processName
     51      */
     52     public void setAllowProcessTracking(String processName);
     53 
     54     /**
     55      * Perform a check of all running processes.
     56      *
     57      * Optionally throw exceptions if one of watched processes has died
     58      */
     59     public void verifyRunningProcess();
     60 }
     61