ICommandScheduler

public interface ICommandScheduler

com.android.tradefed.command.ICommandScheduler


เครื่องจัดตารางเวลาสำหรับการเรียกใช้คำสั่ง TradeFederation

สรุป

ชั้นเรียนที่ซ้อนกัน

interface ICommandScheduler.IScheduledInvocationListener

Listener สำหรับเหตุการณ์การเรียกใช้เมื่อการเรียกใช้เสร็จสมบูรณ์ 

วิธีการสาธารณะ

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

เพิ่มคำสั่งลงในเครื่องจัดตารางเวลา

abstract void addCommandFile(String cmdFile, extraArgs)

เพิ่มคำสั่งทั้งหมดจากไฟล์ที่ระบุลงในเครื่องจัดตารางเวลา

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, devices, String[] args)

เรียกใช้คำสั่งโดยตรงในอุปกรณ์ที่จัดสรรแล้ว

abstract CommandFileWatcher getCommandFileWatcher()

รับ CommandFileWatcher ที่เหมาะสมสำหรับเครื่องจัดตารางเวลานี้

abstract int getExecutingCommandCount()

แสดงผลจำนวนคำสั่งในสถานะปฏิบัติการ

abstract String getInvocationInfo(int invocationId)

แสดงผลข้อมูลเกี่ยวกับรหัสการเรียกใช้ที่ระบุรหัสการเรียกใช้

abstract CommandRunner.ExitCode getLastInvocationExitCode()

แสดงรหัสข้อผิดพลาดของการเรียกใช้ล่าสุดที่เรียกใช้

abstract Throwable getLastInvocationThrowable()

แสดงผล Throwable จากการเรียกใช้ล่าสุดที่เรียกใช้

abstract int getReadyCommandCount()

แสดงผลจำนวนคำสั่งในสถานะพร้อมในคิว

abstract boolean isDeviceInInvocationThread(ITestDevice device)

แสดงผลเป็น "จริง" หากใช้อุปกรณ์โดยเทรดการเรียกใช้ที่ใช้งานอยู่

abstract void join()

รอให้เครื่องจัดตารางเวลาดำเนินการเสร็จสมบูรณ์

abstract void join(long millis)

รอให้เครื่องจัดตารางเวลาทำงานเสร็จหรือหมดเวลาหลังจากระยะเวลาที่ระบุไว้ในเป็นมิลลิวินาที

abstract void removeAllCommands()

นำคำสั่งทั้งหมดออกจากเครื่องจัดตารางเวลา

abstract void setClearcutClient(ClearcutClient client)

ตั้งค่าให้ไคลเอ็นต์รายงานข้อมูลการใช้ประโยชน์จาก

abstract boolean shouldShutdownOnCmdfileError()

แสดงค่า "จริง" หากเราต้องปิดเครื่องจัดตารางเวลาเมื่อมีข้อผิดพลาดด้านคำสั่ง

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)

หยุดการเรียกใช้ที่ทำงานอยู่โดยการระบุรหัส

default boolean stopInvocation(int invocationId)

หยุดการเรียกใช้ที่ทำงานอยู่โดยการระบุรหัส

abstract boolean stopInvocation(ITestInvocation invocation)

หยุดการเรียกใช้ที่ทำงานอยู่

default void stopScheduling()

หยุดการกำหนดเวลาและรับการทดสอบใหม่ แต่จะไม่หยุด Tradefed

วิธีการสาธารณะ

เพิ่มคำสั่ง

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

เพิ่มคำสั่งลงในเครื่องจัดตารางเวลา

โดยพื้นฐานแล้ว คำสั่งเป็นอินสแตนซ์ของการกำหนดค่าที่จะเรียกใช้และเชื่อมโยงกับ อาร์กิวเมนต์

หาก "--help" มีการระบุข้อความช่วยเหลือสำหรับการกำหนดค่าจะเอาต์พุตเป็น stdout มิเช่นนั้น ระบบจะเพิ่มการกำหนดค่าลงในคิวที่จะเรียกใช้

พารามิเตอร์
args String: อาร์กิวเมนต์ config

คิกรีเทิร์น
Pair<Boolean, Integer> 2 ค่า ค่าแรกคือบูลีน true หากมีการเพิ่มคำสั่ง สำเร็จ ค่าที่ 2 คือรหัสเครื่องมือติดตามคำสั่งที่รู้จัก(ค่าที่ไม่เป็นลบ) หากพารามิเตอร์ เพิ่มคำสั่งเรียบร้อยแล้ว แสดงผล 0 เมื่อเพิ่มคำสั่งสำหรับอุปกรณ์ทั้งหมด ไม่เช่นนั้น -1

การขว้าง
ConfigurationException หากแยกวิเคราะห์คำสั่งไม่ได้

เพิ่มคำสั่งไฟล์

public abstract void addCommandFile (String cmdFile, 
                 extraArgs)

เพิ่มคำสั่งทั้งหมดจากไฟล์ที่ระบุลงในเครื่องจัดตารางเวลา

พารามิเตอร์
cmdFile String: เส้นทางระบบไฟล์ของไฟล์คำสั่ง

extraArgs : ERROR(/List) จาก String อาร์กิวเมนต์ที่จะต่อท้ายแต่ละคำสั่งที่แยกวิเคราะห์แล้ว จากไฟล์ เว้นว่างได้แต่ไม่ควรเป็นค่าว่าง

การขว้าง
ConfigurationException หากแยกวิเคราะห์ไฟล์คำสั่งไม่ได้

ดูเพิ่มเติม

รอ

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 ที่จะถ่ายโอน หากเป็นค่าว่าง ระบบจะส่งออกคำสั่งทั้งหมด

คำสั่ง

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 หากไม่มีอุปกรณ์ที่จะใช้

คำสั่ง

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

จัดสรรอุปกรณ์และเรียกใช้คำสั่งโดยตรงโดยไม่ต้องเพิ่มลงในคิวคำสั่ง

พารามิเตอร์
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener ที่จะได้รับข้อมูล

args String: อาร์กิวเมนต์คำสั่ง

คิกรีเทิร์น
long รหัสการเรียกใช้ของคำสั่งที่กำหนดเวลาไว้

การขว้าง
ConfigurationException หากคำสั่งไม่ถูกต้อง
NoDeviceException หากไม่มีอุปกรณ์ที่จะใช้

คำสั่ง

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

เรียกใช้คำสั่งโดยตรงในอุปกรณ์ที่จัดสรรแล้ว

พารามิเตอร์
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener ที่จะได้รับข้อมูล

devices : ERROR(/List) ที่จะใช้

args String: อาร์กิวเมนต์คำสั่ง

คิกรีเทิร์น
long รหัสการเรียกใช้ของคำสั่งที่กำหนดเวลาไว้

การขว้าง
ConfigurationException หากคำสั่งไม่ถูกต้อง

getCommandFileWatcher

public abstract CommandFileWatcher getCommandFileWatcher ()

รับ CommandFileWatcher ที่เหมาะสมสำหรับเครื่องจัดตารางเวลานี้

คิกรีเทิร์น
CommandFileWatcher

getExecutingCommandCount

public abstract int getExecutingCommandCount ()

แสดงผลจำนวนคำสั่งในสถานะปฏิบัติการ

คิกรีเทิร์น
int

getInvocationInfo

public abstract String getInvocationInfo (int invocationId)

แสดงผลข้อมูลเกี่ยวกับรหัสการเรียกใช้ที่ระบุรหัสการเรียกใช้

พารามิเตอร์
invocationId int: รหัสติดตามของการเรียกใช้

คิกรีเทิร์น
String String ที่มีข้อมูลเกี่ยวกับการเรียกใช้

getLastInvocationExitCode

public abstract CommandRunner.ExitCode getLastInvocationExitCode ()

แสดงรหัสข้อผิดพลาดของการเรียกใช้ล่าสุดที่เรียกใช้ แสดงผล 0 (ไม่มีข้อผิดพลาด) หากยังไม่ได้เรียกใช้

คิกรีเทิร์น
CommandRunner.ExitCode

getLastInvocationThrowable ได้

public abstract Throwable getLastInvocationThrowable ()

แสดงผล Throwable จากการเรียกใช้ล่าสุดที่เรียกใช้ แสดงผล Null หากไม่มีคำแนะนำ

คิกรีเทิร์น
Throwable

จำนวนคำสั่ง get Ready

public abstract int getReadyCommandCount ()

แสดงผลจำนวนคำสั่งในสถานะพร้อมในคิว

คิกรีเทิร์น
int

isDeviceInvocationThread

public abstract boolean isDeviceInInvocationThread (ITestDevice device)

แสดงผลเป็น "จริง" หากใช้อุปกรณ์โดยเทรดการเรียกใช้ที่ใช้งานอยู่

พารามิเตอร์
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

ifShutdownOnCmdfileError

public abstract boolean shouldShutdownOnCmdfileError ()

แสดงค่า "จริง" หากเราต้องปิดเครื่องจัดตารางเวลาเมื่อมีข้อผิดพลาดด้านคำสั่ง

คิกรีเทิร์น
boolean

ปิดเครื่อง

public void shutdown ()

ลองปิดเครื่องจัดตารางเวลาคำสั่งอย่างระมัดระวัง

ล้างคำสั่งที่รอทดสอบอยู่และคำขอที่เรียกใช้ทั้งหมดที่กำลังดำเนินการปิด ลงอย่างสง่างาม

หลังจากเรียกใช้การปิดระบบ ลูปหลักของเครื่องจัดตารางเวลาจะรอการเรียกใช้ทั้งหมดใน ดำเนินการให้เสร็จสมบูรณ์ก่อนที่จะออกอย่างสมบูรณ์

ปิดเครื่อง

public abstract void shutdown (boolean notifyStop)

ลองปิดเครื่องจัดตารางเวลาคำสั่งอย่างระมัดระวัง

พารามิเตอร์
notifyStop boolean: หากเป็น "จริง" จะแจ้งเตือนการเรียกใช้การปิด TF

ปิดฮาร์ดแวร์

public abstract void shutdownHard (boolean killAdb)

พยายามบังคับให้เครื่องจัดตารางเวลาคำสั่งปิดระบบอย่างแรง

คล้ายกับ shutdown() แต่เลือกที่จะหยุดการเชื่อมต่อ adb ด้วย พยายามที่จะ "สร้างแรงบันดาลใจ" คำขอที่อยู่ระหว่างดำเนินการเพื่อให้ดำเนินการเสร็จสมบูรณ์ได้เร็วขึ้น

พารามิเตอร์
killAdb boolean

ปิดฮาร์ดแวร์

public abstract void shutdownHard ()

พยายามบังคับให้เครื่องจัดตารางเวลาคำสั่งปิดระบบอย่างแรง เหมือนกับ DisableHard(true)

ปิดการทำงานเมื่อว่างเปล่า

public abstract void shutdownOnEmpty ()

คล้ายกับ shutdown() แต่จะรอให้มีการเรียกใช้คำสั่งทั้งหมดแทน ก่อนที่จะออก

โปรดทราบว่าหากมีคำสั่งใดๆ อยู่ในโหมดวนซ้ำ เครื่องจัดตารางเวลาจะไม่ออกโดยเด็ดขาด

เริ่มต้น

public abstract void start ()

เริ่มใช้งาน ICommandScheduler

ต้องเรียกใช้ก่อนเรียกใช้วิธีการอื่นๆ

จะทำงานจนกว่าจะมีการเรียกใช้ shutdown() ดูThread.start()

การเรียกใช้การหยุด

public abstract boolean stopInvocation (int invocationId, 
                String cause)

หยุดการเรียกใช้ที่ทำงานอยู่โดยการระบุรหัส

พารามิเตอร์
invocationId int: รหัสติดตามของการเรียกใช้

cause String: สาเหตุของการหยุดการเรียกใช้

คิกรีเทิร์น
boolean true หากการเรียกใช้หยุดลง เป็น false หากไม่เป็นเช่นนั้น

การขว้าง
UnsupportedOperationException หากการใช้งานไม่รองรับ

การเรียกใช้การหยุด

public boolean stopInvocation (int invocationId)

หยุดการเรียกใช้ที่ทำงานอยู่โดยการระบุรหัส

พารามิเตอร์
invocationId int

คิกรีเทิร์น
boolean true หากการเรียกใช้หยุดลง เป็น false หากไม่เป็นเช่นนั้น

การขว้าง
UnsupportedOperationException หากการใช้งานไม่รองรับ

การเรียกใช้การหยุด

public abstract boolean stopInvocation (ITestInvocation invocation)

หยุดการเรียกใช้ที่ทำงานอยู่

พารามิเตอร์
invocation ITestInvocation

คิกรีเทิร์น
boolean true หากการเรียกใช้หยุดลง เป็น false หากไม่เป็นเช่นนั้น

การขว้าง
UnsupportedOperationException หากการใช้งานไม่รองรับ

การกำหนดเวลาหยุด

public void stopScheduling ()

หยุดการกำหนดเวลาและรับการทดสอบใหม่ แต่จะไม่หยุด Tradefed โดยมีจุดประสงค์เพื่อเปิดใช้ การปิดระบบ 2 ขั้นตอน โดยก่อนอื่นเราจะระบายการทดสอบที่ทำงานอยู่ทั้งหมด จากนั้นจึงสิ้นสุดการทดสอบ Tradefed ขั้นตอนได้