| 280 | { |
| 281 | public: |
| 282 | MessageMoverNode(MemoryPool& pool, MessageNode* fromMessage, MessageNode* toMessage, |
| 283 | MessageNode* aCheckMessageEof = nullptr) |
| 284 | : CompoundStmtNode(pool), |
| 285 | checkMessageEof(aCheckMessageEof) |
| 286 | { |
| 287 | // Iterate over the format items, except the EOF item. |
| 288 | for (USHORT i = 0; i < (fromMessage->format->fmt_count / 2) * 2; i += 2) |
| 289 | { |
| 290 | ParameterNode* flag = FB_NEW_POOL(pool) ParameterNode(pool); |
| 291 | flag->messageNumber = fromMessage->messageNumber; |
| 292 | flag->message = fromMessage; |
| 293 | flag->argNumber = i + 1; |
| 294 | |
| 295 | ParameterNode* param = FB_NEW_POOL(pool) ParameterNode(pool); |
| 296 | param->messageNumber = fromMessage->messageNumber; |
| 297 | param->message = fromMessage; |
| 298 | param->argNumber = i; |
| 299 | param->argFlag = flag; |
| 300 | |
| 301 | AssignmentNode* assign = FB_NEW_POOL(pool) AssignmentNode(pool); |
| 302 | assign->asgnFrom = param; |
| 303 | statements.add(assign); |
| 304 | |
| 305 | flag = FB_NEW_POOL(pool) ParameterNode(pool); |
| 306 | flag->messageNumber = toMessage->messageNumber; |
| 307 | flag->message = toMessage; |
| 308 | flag->argNumber = i + 1; |
| 309 | |
| 310 | param = FB_NEW_POOL(pool) ParameterNode(pool); |
| 311 | param->messageNumber = toMessage->messageNumber; |
| 312 | param->message = toMessage; |
| 313 | param->argNumber = i; |
| 314 | param->argFlag = flag; |
| 315 | |
| 316 | assign->asgnTo = param; |
| 317 | } |
| 318 | } |
| 319 | |
| 320 | const StmtNode* execute(thread_db* tdbb, Request* request, ExeState* exeState) const override |
| 321 | { |
nothing calls this directly
no test coverage detected