| 144 | } |
| 145 | |
| 146 | void FFacade::WriteBuffers(const TSharedPtr<PCGExMT::FTaskManager>& AsyncManager, PCGExMT::FCompletionCallback&& Callback) |
| 147 | { |
| 148 | if (!ValidateOutputsBeforeWriting()) |
| 149 | { |
| 150 | Flush(); |
| 151 | return; |
| 152 | } |
| 153 | |
| 154 | PCGEX_ASYNC_GROUP_CHKD_VOID(AsyncManager, WriteBuffersWithCallback); |
| 155 | WriteBuffersWithCallback->OnCompleteCallback = |
| 156 | [PCGEX_ASYNC_THIS_CAPTURE, Callback]() |
| 157 | { |
| 158 | PCGEX_ASYNC_THIS |
| 159 | This->Flush(); |
| 160 | Callback(); |
| 161 | }; |
| 162 | |
| 163 | if (const int32 WritableCount = WriteBuffersAsCallbacks(WriteBuffersWithCallback); WritableCount <= 0) |
| 164 | { |
| 165 | // -1 is fail so no callback |
| 166 | if (WritableCount == 0) { Callback(); } |
| 167 | return; |
| 168 | } |
| 169 | |
| 170 | WriteBuffersWithCallback->StartSimpleCallbacks(); |
| 171 | } |
| 172 | |
| 173 | bool FFacade::ValidateOutputsBeforeWriting() const |
| 174 | { |
no test coverage detected