ObjectRef#

包名:org.yuanrong.runtime.client

public class ObjectRef#

ObjectRef 类。

Note

1.openYuanrong 鼓励用户将大对象通过 YR.put 存入数据系统并获取一个唯一 ObjectRef (对象引用),在 invoke 调用用户函数时使用该 ObjectRef 替代对象本身作为函数入参,减小大对象在 openYuanrong 及用户函数各组件间传输产生的开销,保证流转高效。

2.每次调用用户函数的返回值也将以 ObjectRef 的形式返回,用户可以将该 ObjectRef 用于下一步调用的入参或者通过 YR.get 取回对应对象。

3.当前不支持用户自行构造 objectRef。

接口说明#

public ObjectRef(String objectID)#

ObjectRef 的构造函数。

  • 参数:

    • objectID - object 在 openYuanrong 集群内的 id。

public ObjectRef(String objectID, Class<?> returnType)#

ObjectRef 的构造函数。

  • 参数:

    • objectID - object 在 openYuanrong 集群内的 id。

    • returnType - object 类型。

public String getObjId()#

获取 objectID。

  • 返回:

    objectID: object 在 openYuanrong 集群内的 id。

public Object get(Class<?> classType) throws YRException, LibRuntimeException#

获取结果。

  • 参数:

    • classType - 类的类型。

  • 返回:

    ObjectRef 的结果。

  • 抛出:

    • YRException - 统一抛出的异常类型。

    • LibRuntimeException - 数据系统错误。

public Object get() throws YRException, LibRuntimeException#

获取结果。

  • 返回:

    ObjectRef 的结果。

  • 抛出:

    • YRException - 统一抛出的异常类型。

    • LibRuntimeException - 数据系统错误。

public Object get(int timeout) throws YRException, LibRuntimeException#

获取结果。

  • 参数:

    • timeout - 超时时间,单位为秒。

  • 返回:

    ObjectRef 的结果。

  • 抛出:

    • YRException - 统一抛出的异常类型。

    • LibRuntimeException - 数据系统错误。

私有成员#

private Class<?> type

object 类型。

private boolean isByteBuffer = false

object 是否为 ByteBuffer 类型。

private final String objectID

object 在 openYuanrong 集群内的 id。