YR_RECOVER

Contents

YR_RECOVER#

YR_RECOVER(...)#

用户可以使用此接口执行数据恢复操作。

在实例恢复期间要执行的函数必须使用 YR_RECOVER 宏进行装饰。此宏用于装饰在云中执行的参与者内的用户定义的状态成员函数。 使用 YR_RECOVER 装饰的函数可以使用 openYuanrong 接口。这些函数将在以下场景中执行:在运行时恢复请求以恢复实例期间。

class Counter {
public:
    int count;
    int recoverFlag = 0;

    Counter() {}

    explicit Counter(int init) : count(init) {}

    static Counter *FactoryCreate(int init)
    {
        return new Counter(init);
    }
    int SaveState();

    int LoadState();

    void Recover();
};

int Counter::SaveState()
{
    YR::SaveState();
    return count;
}

int Counter::LoadState()
{
    YR::LoadState();
    return count;
}

YR_INVOKE(&Counter::SaveState, &Counter::LoadState);

void Counter::Recover()
{
    std::cout << "recover" << std::endl;
    recoverFlag++;
}

YR_RECOVER(&Counter::Recover);
抛出:

Exception - 如果检测到一个函数被多次注册,程序将退出并显示错误消息。