ICommandScheduler

public interface ICommandScheduler

com.android.tradefed.command.ICommandScheduler


用於執行 TradeFederation 指令的排程器。

摘要

巢狀類別

interface ICommandScheduler.IScheduledInvocationListener

在叫用完成時,用於叫用事件的監聽器。 

公用方法

abstract Pair<Boolean, Integer> addCommand(String[] args)

Adds a command to the scheduler.

abstract void addCommandFile(String cmdFile, extraArgs)

Adds all commands from given file to the scheduler

abstract void await()

等待排程器開始執行,包括等待從舊版 TF 完成移交 (如適用)。

abstract void displayCommandQueue(PrintWriter printWriter)

輸出指令執行佇列狀態的詳細偵錯資訊。

abstract void displayCommandsInfo(PrintWriter printWriter, String regex)

輸出目前的指令清單。

abstract void displayInvocationsInfo(PrintWriter printWriter)

顯示目前的叫用清單。

abstract void dumpCommandsXml(PrintWriter printWriter, String regex)

傾印指令的展開 XML 檔案,並為所有目前指令指定所有 Option 值。

abstract long execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)

直接分配裝置並執行指令,不必使用現有的 IInvocationContext 將指令新增至指令佇列。

abstract long execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)

直接分配裝置並執行指令,不必將指令加入指令佇列。

abstract long execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)

直接在已分配的裝置上執行指令。

abstract long execCommand(ICommandScheduler.IScheduledInvocationListener listener, devices, String[] args)

直接在已分配的裝置上執行指令。

abstract CommandFileWatcher getCommandFileWatcher()

Get the appropriate CommandFileWatcher for this scheduler

abstract int getExecutingCommandCount()

傳回處於執行狀態的指令數。

abstract String getInvocationInfo(int invocationId)

指定叫用 ID,即可傳回叫用資訊。

abstract CommandRunner.ExitCode getLastInvocationExitCode()

傳回上次執行的呼叫作業錯誤代碼。

abstract Throwable getLastInvocationThrowable()

傳回上次執行的叫用作業中的 Throwable

abstract int getReadyCommandCount()

傳回佇列中處於就緒狀態的指令數量。

abstract boolean isDeviceInInvocationThread(ITestDevice device)

如果裝置是由有效叫用執行緒使用,則傳回 true。

abstract void join()

等待排程器完成。

abstract void join(long millis)

等待排程器完成或在指定時間 (以毫秒為單位) 後逾時。

abstract void removeAllCommands()

從排程器移除所有指令

abstract void setClearcutClient(ClearcutClient client)

將用戶端設為回報安全帶資料

default void setMaxPollTime(long polling)
default void setPrintSchedulingWarning(boolean print)
abstract boolean shouldShutdownOnCmdfileError()

Return true if we need to shutdown the scheduler on a command errors

default void shutdown()

嘗試安全關閉指令排程器。

abstract void shutdown(boolean notifyStop)

嘗試安全關閉指令排程器。

abstract void shutdownHard(boolean killAdb)

嘗試強制關閉指令排程器。

abstract void shutdownHard()

嘗試強制關閉指令排程器。

abstract void shutdownOnEmpty()

shutdown() 類似,但會等待所有指令執行完畢才結束。

abstract void start()

啟動 ICommandScheduler

abstract boolean stopInvocation(int invocationId, String cause)

指定 ID 即可停止執行中的叫用。

default boolean stopInvocation(int invocationId)

指定 ID 即可停止執行中的叫用。

abstract boolean stopInvocation(ITestInvocation invocation)

停止執行中的叫用。

default void stopScheduling()

停止排定及接受新測試,但不會停止 Tradefed。

公用方法

addCommand

public abstract Pair<Boolean, Integer> addCommand (String[] args)

將指令新增至排程器。

指令基本上就是要執行的設定執行個體,以及相關聯的引數。

如果指定「--help」引數,設定的說明文字會輸出至 stdout。 否則,設定檔會新增至佇列以供執行。

參數
args String:設定引數。

傳回
Pair<Boolean, Integer> 一組值,第一個值是布林值,如果指令已成功新增,則為 true。如果指令新增成功,第二個值是已知的指令追蹤器 ID(非負值);如果為所有裝置新增指令,則傳回 0;否則傳回 -1。

擲回
ConfigurationException 如果無法剖析指令

addCommandFile

public abstract void addCommandFile (String cmdFile, 
                 extraArgs)

將指定檔案中的所有指令新增至排程器

參數
cmdFile String:指令檔案的檔案系統路徑

extraArgs :要附加至從檔案剖析的每個指令的 String 引數 ERROR(/List)。可以留空,但不得為空值。

擲回
ConfigurationException 如果無法剖析指令檔

另請參閱:

await

public abstract void await ()

等待排程器開始執行,包括等待從舊版 TF 完成移交 (如適用)。

displayCommandQueue

public abstract void displayCommandQueue (PrintWriter printWriter)

輸出指令執行佇列狀態的詳細偵錯資訊。

displayCommandsInfo

public abstract void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

輸出目前的指令清單。

參數
printWriter PrintWriter:要輸出至的 ERROR(/PrintWriter)

regex String:規則運算式,指令必須符合這個運算式才會列印。如果為空值,則會列印所有指令。

displayInvocationsInfo

public abstract void displayInvocationsInfo (PrintWriter printWriter)

顯示目前的叫用清單。

參數
printWriter PrintWriter:要輸出至的 ERROR(/PrintWriter)

dumpCommandsXml

public abstract void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

傾印指令的展開 XML 檔案,並為所有目前指令指定所有 Option 值。

參數
printWriter PrintWriter:要輸出狀態的 ERROR(/PrintWriter)

regex String:指令應比對的規則運算式,以便傾印 XML 檔案。如果為空值,系統會傾印所有指令。

execCommand

public abstract long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

直接分配裝置並執行指令,不必使用現有的 IInvocationContext 將指令新增至指令佇列。

參數
context IInvocationContext:現有 IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener:要通知的 ICommandScheduler.IScheduledInvocationListener

args String:指令引數

傳回
long

擲回
ConfigurationException 如果指令無效
NoDeviceException 如果沒有可用的裝置

execCommand

public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

直接分配裝置並執行指令,不必將裝置新增至指令佇列。

參數
listener ICommandScheduler.IScheduledInvocationListener:要通知的 ICommandScheduler.IScheduledInvocationListener

args String:指令引數

傳回
long 排定指令的叫用 ID。

擲回
ConfigurationException 如果指令無效
NoDeviceException 如果沒有可用的裝置

execCommand

public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

直接在已分配的裝置上執行指令。

參數
listener ICommandScheduler.IScheduledInvocationListener:要通知的 ICommandScheduler.IScheduledInvocationListener

device ITestDevice:要使用的 ITestDevice

args String:指令引數

傳回
long 排定指令的叫用 ID。

擲回
ConfigurationException 如果指令無效

execCommand

public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                 devices, 
                String[] args)

直接在已分配的裝置上執行指令。

參數
listener ICommandScheduler.IScheduledInvocationListener:要通知的 ICommandScheduler.IScheduledInvocationListener

devices :要使用的 ERROR(/List)

args String:指令引數

傳回
long 排定指令的叫用 ID。

擲回
ConfigurationException 如果指令無效

getCommandFileWatcher

public abstract CommandFileWatcher getCommandFileWatcher ()

取得這個排程器的適當 CommandFileWatcher

傳回
CommandFileWatcher

getExecutingCommandCount

public abstract int getExecutingCommandCount ()

傳回處於執行狀態的指令數。

傳回
int

getInvocationInfo

public abstract String getInvocationInfo (int invocationId)

指定叫用 ID,即可傳回叫用資訊。

參數
invocationId int:呼叫的追蹤 ID。

傳回
String String,其中包含有關呼叫的資訊。

getLastInvocationExitCode

public abstract CommandRunner.ExitCode getLastInvocationExitCode ()

傳回上次執行的叫用作業錯誤代碼。 如果尚未執行任何叫用,則傳回 0 (無錯誤)。

傳回
CommandRunner.ExitCode

getLastInvocationThrowable

public abstract Throwable getLastInvocationThrowable ()

傳回上次執行的呼叫所傳回的 Throwable。 如果沒有可擲回的項目,則傳回空值。

傳回
Throwable

getReadyCommandCount

public abstract int getReadyCommandCount ()

傳回佇列中處於就緒狀態的指令數。

傳回
int

isDeviceInInvocationThread

public abstract boolean isDeviceInInvocationThread (ITestDevice device)

如果裝置是由有效叫用執行緒使用,則傳回 true。

參數
device ITestDevice

傳回
boolean

加入

public abstract void join ()

等待排程器完成作業。

另請參閱:

加入

public abstract void join (long millis)

等待排程器完成或在指定時間 (以毫秒為單位) 後逾時。

參數
millis long

另請參閱:

removeAllCommands

public abstract void removeAllCommands ()

從排程器移除所有指令

setClearcutClient

public abstract void setClearcutClient (ClearcutClient client)

將用戶端設為回報安全帶資料

參數
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

參數
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

參數
print boolean

shouldShutdownOnCmdfileError

public abstract boolean shouldShutdownOnCmdfileError ()

Return true if we need to shutdown the scheduler on a command errors

傳回
boolean

關機

public void shutdown ()

嘗試安全關閉指令排程器。

清除待測試的指令,並要求所有進行中的呼叫正常關閉。

呼叫關機後,排程器主迴圈會等待所有進行中的呼叫完成,然後完全結束。

關機

public abstract void shutdown (boolean notifyStop)

嘗試安全關閉指令排程器。

參數
notifyStop boolean:如果為 true,則會通知 TF 關機的呼叫。

shutdownHard

public abstract void shutdownHard (boolean killAdb)

嘗試強制關閉指令排程器。

shutdown() 類似,但也會選擇性終止 ADB 連線,嘗試「激發」進行中的呼叫,以更快完成。

參數
killAdb boolean

shutdownHard

public abstract void shutdownHard ()

嘗試強制關閉指令排程器。與 shutdownHard(true) 相同。

shutdownOnEmpty

public abstract void shutdownOnEmpty ()

shutdown() 類似,但會等待所有指令執行完畢才結束。

請注意,如果任何指令處於迴圈模式,排程器就不會結束。

start

public abstract void start ()

啟動 ICommandScheduler

必須先呼叫這個方法,才能呼叫其他方法。

會持續執行,直到呼叫 shutdown() 為止。 請參閱 Thread.start()

stopInvocation

public abstract boolean stopInvocation (int invocationId, 
                String cause)

指定 ID 即可停止執行中的叫用。

參數
invocationId int:呼叫的追蹤 ID。

cause String:停止呼叫的原因。

傳回
boolean 如果停止呼叫,則為 true,否則為 false

擲回
UnsupportedOperationException 如果導入作業不支援這項功能

stopInvocation

public boolean stopInvocation (int invocationId)

指定 ID 即可停止執行中的叫用。

參數
invocationId int

傳回
boolean 如果停止呼叫,則為 true,否則為 false

擲回
UnsupportedOperationException 如果導入作業不支援這項功能

stopInvocation

public abstract boolean stopInvocation (ITestInvocation invocation)

停止執行中的叫用。

參數
invocation ITestInvocation

傳回
boolean 如果停止呼叫,則為 true,否則為 false

擲回
UnsupportedOperationException 如果導入作業不支援這項功能

stopScheduling

public void stopScheduling ()

停止排定及接受新測試,但不會停止 Tradefed。這是為了啟用兩步驟關機程序,首先排空所有執行中的測試,然後終止 Tradefed 程序。