aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/messagebus/rain_check/core/simple.cpp
blob: 70182b2f93e166b5763d6e6d59aab6c464e21db8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "simple.h"

using namespace NRainCheck;

TSimpleTaskRunner::TSimpleTaskRunner(IEnv* env, ISubtaskListener* parentTask, TAutoPtr<ISimpleTask> impl)
    : TTaskRunnerBase(env, parentTask, impl.Release())
    , ContinueFunc(&ISimpleTask::Start)
{
}

TSimpleTaskRunner::~TSimpleTaskRunner() {
    Y_ASSERT(!ContinueFunc);
}

bool TSimpleTaskRunner::ReplyReceived() {
    ContinueFunc = (GetImpl()->*(ContinueFunc.Func))();
    return !!ContinueFunc;
}