| 1895 | } |
| 1896 | |
| 1897 | TSharedPtr<FJsonObject> FURLabRpcDispatcher::HandleSetMode(const TSharedPtr<FJsonObject>& Req) |
| 1898 | { |
| 1899 | AAMjManager* Mgr = OwnerMgr.Get(); |
| 1900 | if (!Mgr) |
| 1901 | return MakeError(TEXT("not_ready"), TEXT("Manager missing")); |
| 1902 | |
| 1903 | if (Mgr->StepMode != EStepMode::Auto) |
| 1904 | { |
| 1905 | return MakeError(TEXT("mode_locked_by_server"), |
| 1906 | FString::Printf(TEXT("Project pinned StepMode to %s"), *StepModeToString(Mgr->StepMode))); |
| 1907 | } |
| 1908 | |
| 1909 | FString ModeStr; |
| 1910 | if (!Req->TryGetStringField(TEXT("mode"), ModeStr)) |
| 1911 | return MakeError(TEXT("missing_field"), TEXT("set_mode requires 'mode'")); |
| 1912 | |
| 1913 | EStepMode NewMode; |
| 1914 | if (!StepModeFromString(ModeStr, NewMode)) |
| 1915 | return MakeError(TEXT("bad_mode"), FString::Printf(TEXT("Unknown mode '%s'"), *ModeStr)); |
| 1916 | |
| 1917 | EStepMode Prev = ActiveStepMode; |
| 1918 | SetActiveStepMode(NewMode); |
| 1919 | |
| 1920 | TSharedPtr<FJsonObject> Reply = MakeShared<FJsonObject>(); |
| 1921 | Reply->SetStringField(TEXT("op"), TEXT("set_mode_ok")); |
| 1922 | Reply->SetStringField(TEXT("previous_mode"), StepModeToString(Prev)); |
| 1923 | Reply->SetStringField(TEXT("current_mode"), StepModeToString(ActiveStepMode)); |
| 1924 | return Reply; |
| 1925 | } |
| 1926 | |
| 1927 | void FURLabRpcDispatcher::SetActiveStepMode(EStepMode NewMode) |
| 1928 | { |
nothing calls this directly
no test coverage detected