SDK::DDSSession: remove channel id to task id association

This commit is contained in:
Alexey Rybalchenko
2020-02-13 12:51:10 +01:00
committed by Dennis Klein
parent 3785fd9ff9
commit 0e72a9bf54
7 changed files with 19 additions and 27 deletions

View File

@@ -193,7 +193,6 @@ class BasicTopology : public AsioBase<Executor, Allocator>
case Type::state_change: {
auto _cmd = static_cast<StateChange&>(*cmd);
DDSTask::Id taskId(_cmd.GetTaskId());
fDDSSession.UpdateChannelToTaskAssociation(senderId, taskId);
if (_cmd.GetCurrentState() == DeviceState::Exiting) {
Cmds outCmds;
outCmds.Add<StateChangeExitingReceived>();
@@ -212,10 +211,11 @@ class BasicTopology : public AsioBase<Executor, Allocator>
}
break;
case Type::transition_status: {
if (static_cast<TransitionStatus&>(*cmd).GetResult() != Result::Ok) {
LOG(error) << "Transition failed for " << static_cast<TransitionStatus&>(*cmd).GetDeviceId();
auto _cmd = static_cast<TransitionStatus&>(*cmd);
if (_cmd.GetResult() != Result::Ok) {
LOG(error) << "Transition failed for " << _cmd.GetDeviceId();
std::lock_guard<std::mutex> lk(fMtx);
if (!fChangeStateOp.IsCompleted() && fStateData.at(fStateIndex.at(fDDSSession.GetTaskId(senderId))).state != fChangeStateTarget) {
if (!fChangeStateOp.IsCompleted() && fStateData.at(fStateIndex.at(_cmd.GetTaskId())).state != fChangeStateTarget) {
fChangeStateOpTimer.cancel();
fChangeStateOp.Complete(MakeErrorCode(ErrorCode::DeviceChangeStateFailed), fStateData);
}