什么是SwirldMain?
public interface SwirldMain extends java.lang.Runnable
要实现一个swirld应用,需要创建一个实现了SwirldsMain的类。它的创建方法没有参数,run()方法直到用户退出swirld都保持运行。
方法概要
void init(Platform platform, long selfId)
这个方法只会由Platform来调用
SwirldState newState()
实例化并返回一个SwirldState 当前SwirldMain 对应的对象。
void preEvent()
platform 在SwirldMain创建一个事件前调用这个方法。
default void release(Platform platform, int id)
关闭不是由Platform.create*实例化的窗口。
void run()
应用在这里管理屏幕显示和 I/O, 以及按需创建交易。
方法详解
init
void init(Platform platform, long selfId)
这个方法只会由Platform来调用。它传递了patform的引用,因此SwirldMain知道改调用谁(依赖注入)。
参数:
platform - 初始化SwirldMain的Platform
selfId - 成员(自己)的ID 号
release
default void release(Platform platform, int id)
关闭不是由Platform.create*实例化的窗口。这个方法可能被不是Swing事件线程调用。
参数:
platform - 实例化这个 SwirldMain的Platform
id - 成员ID 号(自己)
run
void run()
应用在这里管理屏幕显示和 I/O, 以及按需创建交易。它应该在用户关闭应用时退出,但也有可能更早。
定义:
在接口 java.lang.Runnable的方法run
preEvent
void preEvent()
platform 在SwirldMain创建一个事件前调用这个方法。SwirldMain 可选择在这里创建交易,确信它们也会马上被发送。 一个 SwirldMain 可以被写成在这个方法里做所有的事情,而在run()方法什么也不做立即返回。
run()有它自己的线程,这个线程属于特定swirld运行应用的SwirldMain。而preEvent() 运行在platform每次调用这个方法时创建的特殊线程里,并被限制在0.1秒返回。如果preEvent()没有在0.1秒返回,线程将会被中断。
newState
SwirldState newState()
实例化并返回一个对应于SwirldMain对象的 SwirldState 对象。通常,如果类ExampleMain实现了SwirldMain,那么newState会返回ExampleMain的对象。
Returns:
新创建的 SwirldState 对象