哈希图开发入门7-核心类Platform

什么是Platform类?

public final class Platform extends java.lang.object

是Swirlds的平台,运行应用,处理同步信息和达成共识。如果多个成员在同一个电脑上运行,每个成员都有自己的Platform对象。在同一个电脑上的Platform对象都是由同一个Browser对象创建和启动的,Browser是程序的入口Main类。



方法概要



static void beep()

播放嘟的声音。


static void beep(int pitch, int velocity, int duration)

播放嘟的声音。


static void click()

播放点击鼠标的声音


Console createConsole(boolean visible)

创建带有文字控制台的新窗口,大小和位置为推荐值,并包含Swirlds菜单。


boolean createTransaction(byte[] trans)

SwirldMain 对象调用这个方法创建一个新交易。


javax.swing.JFrame createWindow(boolean visible)

创建新窗口,大小和位置为推荐值,并包含Swirlds菜单。


java.time.Instant estimateTime()

估算一个交易最终达成共识的时间戳, 如果这个交易通过调用 createTransaction()刚被创建。


java.lang.String getAbout()

得到程序“关于我们”的最新字符串


Address getAddress()

得到运行这个Platform的成员地址。


Event[] getAllEvents()

得到哈希图中所有事件的数组。


int getNumMembers()

得到参与共识的成员数量。


java.lang.String[] getParameters()

得到Platform对象创建时被赋值的参数,如在config.txt中配置的参数。


long getSleepAfterSync()

得到Platform在传言同步启动后延迟的毫秒数。


SwirldState[] getState()

SwirldMain 对象可以调用这个方法得到当前的state对象。


Statistics[] getStats()

得到监控和报告网络与同步的统计对象。


byte[] getSwirldId()

得到当前swirld的ID


void setAbout(java.lang.String about)

SwirldMain 调用这个方法设置“关于”菜单显示的字符串


void setSleepAfterSync(long delay)

设置Platform在传言同步启动后延迟的毫秒数。


从接口 com.swirlds.platform.FastCopyable继承的方法

    equals

    getClass

    hashCode

    notify

    notifyAll

    toString

    wait

    wait

    wait


方法详解


getSwirldId

public byte[] getSwirldId()

得到当前swirld的ID。 一个应用可以创建多个不同swirld(所谓的网络,账本或共享世界)。它是swirld的唯一识别编号。

Returns:

    swirld的ID编号


getStats

public Statistics getStats()

得到监控和报告网络与同步的统计对象。

返回:

    Platform对象所关联的统计对象。


getSleepAfterSync    

public long getSleepAfterSync()

得到Platform在传言同步启动后延迟的毫秒数。默认值是0,但可以改变数值来减慢系统。用于系统测试。

返回:

    延迟的毫秒数。


setSleepAfterSync

public void setSleepAfterSync(long delay)

设置Platform在传言同步启动后延迟的毫秒数。 默认值是0,但可以改变数值来减慢系统。用于系统测试。

参数:

    delay - 延迟的毫秒数


setAbout

public void setAbout(java.lang.String about)

 SwirldMain调用这个方法设置当用户在窗口右上角点击“关于”菜单后显示的字符串。推荐字符串是一个包含应用名称,版本号和年份的简短字符串。

参数:

    about -  点击菜单“关于”后 窗口显示内容


getAbout

public java.lang.String getAbout()

得到程序“关于我们”的最新字符串

返回:

    菜单“关于”的显示内容


getParameters

public java.lang.String[] getParameters()

得到Platform对象创建时被赋值的参数,如在config.txt中配置的参数。

返回:

    参数数组


createTransaction

public boolean createTransaction(byte[] trans)

SwirldMain 对象调用这个方法创建一个新交易。这个新创建的交易内嵌于一个新创建的事件,并在同步过程发送给所有其他成员。同时它也会被发送给swirldState对象。

hintIDs 是建议系统尽快与IDhintIDs的成员同步。通过这个来保证这个交易能快速到达紧急需要它的成员。这只是一个提示,不能保证Platform对象完全这样做。

如果交易被创建的快与能被处理的速度,最终会形成大的积压。这时,调用createTransaction会返回失败,并不会创建交易。

一个交易最多1024个字节,如果长度超过1024,返回失败,并不会创建交易。

参数:

    trans - 被创建的交易,由swirld选择的方式编码t。

返回:

    true 如果成功


estimateTime

public java.time.instant estimateTime()

估算一个交易最终达成共识的时间戳, 如果这个交易通过调用 createTransaction()刚被创建。一个实时应用,例如游戏,通常在调用estTime()后重画屏幕,把屏幕上事物渲染成它将要成为的状态。

返回:

    估算的时间


getState

public SwirldState getState()

SwirldMain 对象可以调用这个方法得到当前的state对象。 SwirldMain需要经常调用这个方法,这样它总是能使用最新的State对象。因为Platform将会经常改变当前的State对象。

SwirldMain 必须确保对State对象的访问时同步的。所以要么State的getters方法和setters标记为“synchronized”,要么SwirldMain从State读取状态时,把调用包装在synchronized(…){…} 块中。

返回:

    当前state对象


getAllEvents

public Event[] getAllEvents()

得到哈希图中所有事件的数组。这个方法运行缓慢,所以不要频繁调用。返回的数组是一个浅复制,因此调用者可以改变它,其它 线程不会改变它。然而,它所引用的这些事件可能有字段被其它线程修改,不一定是被调用方修改。这个数组中会首先包含共识事件(按共识次序),然后是非共识事件(按收到时间)。

返回:

    所有事件的数组


getAddress

public Address getAddress()

得到Platform上所有运行成员的地址.

返回:

    the Address


createConsole

public Console createConsole(boolean visible)

创建带有文字控制台的新窗口,大小和位置为推荐值,并包含Swirlds菜单。 

参数:

    visible - 窗口是否初始化为可见?如果否,可以以后设置setVisible(true) 使它可见。

返回:

    新创建的窗口


createWindow

public javax.swing.JFrame createWindow(boolean visible)

创建新窗口,大小和位置为推荐值,并包含Swirlds菜单。 

参数:

    visible - 窗口是否初始化为可见?如果否,可以以后设置setVisible(true) 使它可见。

返回:

    新创建的窗口


click

public static void click()

播放点击鼠标的声音


beep

public static void beep()

播放嘟的声音。 它是中音C,一半音量,持续20毫秒。


beep

public static void beep(int pitch, int velocity, int duration)

播放嘟的声音。

参数:

    pitch - 音高, 从 0 到 127, 其中 60 是中音 C, 61 是 C#, 以此类推.

    velocity - 音符播放的音量,0 静音, 127 最大声音.

    duration - 声音播放的毫秒数


getNumMembers

public int getNumMembers()

得到参与共识的成员数量。也就是当前地址簿的大小。

返回:

    成员数量




原文:https://dev.hashgraph.com/docs/platform/

你可能感兴趣的:(哈希图开发入门7-核心类Platform)