MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / MessageMoverNode

Method MessageMoverNode

src/jrd/ExtEngineManager.cpp:282–318  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 3

ParameterNodeClass · 0.85
AssignmentNodeClass · 0.70
addMethod · 0.45

Tested by

no test coverage detected