@@ -306,26 +306,18 @@ void ServiceFactory<
306
306
@ [ for field in service[" fields" ][type .lower ()]]@
307
307
@ [ if field[" array" ]]@
308
308
req@ (to).@ (field[" ros" + to][" name" ]).resize (req@ (frm).@ (field[" ros" + frm][" name" ]).size ());
309
- auto @ (field[" ros1" ][" name" ])1_it = req1.@ (field[" ros1" ][" name" ]).begin ();
310
- auto @ (field[" ros2" ][" name" ])2_it = req2.@ (field[" ros2" ][" name" ]).begin ();
311
- while (
312
- @ (field[" ros1" ][" name" ])1_it != req1.@ (field[" ros1" ][" name" ]).end () &&
313
- @ (field[" ros2" ][" name" ])2_it != req2.@ (field[" ros2" ][" name" ]).end ()
314
- ) {
315
- auto & @ (field[" ros1" ][" name" ])1 = * (@ (field[" ros1" ][" name" ])1_it ++ );
316
- auto & @ (field[" ros2" ][" name" ])2 = * (@ (field[" ros2" ][" name" ])2_it ++ );
317
- @ [ else ]@
318
- auto & @ (field[" ros1" ][" name" ])1 = req1.@ (field[" ros1" ][" name" ]);
319
- auto & @ (field[" ros2" ][" name" ])2 = req2.@ (field[" ros2" ][" name" ]);
320
- @ [ end if ]@
321
- @ [ if field[" basic" ]]@
322
- @ (field[" ros2" ][" name" ])@ (to) = @ (field[" ros1" ][" name" ])@ (frm);
309
+ for ( size_t i = 0 ; i < req1.@ (field[" ros1" ][" name" ]).size (); ++ i)
310
+ @ [ if field[" basic" ]]@
311
+ req@ (to).@ (field[" ros" + to][" name" ])[i] = req@ (frm).@ (field[" ros" + frm][" name" ])[i];
312
+ @ [ else ]@
313
+ Factory< @ (field[" ros1" ][" cpptype" ]),@ (field[" ros2" ][" cpptype" ])> :: convert_ @ (frm)_to_@ (to)(@
314
+ req@ (frm).@ (field[" ros" + frm][" name" ])[i], req@ (to).@ (field[" ros" + to][" name" ])[i]);
315
+ @ [ end if ]@
316
+ @ [ elif field[" basic" ]]@
317
+ req@ (to).@ (field[" ros" + to][" name" ]) = req@ (frm).@ (field[" ros" + frm][" name" ]);
323
318
@ [ else ]@
324
319
Factory< @ (field[" ros1" ][" cpptype" ]),@ (field[" ros2" ][" cpptype" ])> :: convert_ @ (frm)_to_@ (to)(@
325
- @ (field[" ros2" ][" name" ])@ (frm), @ (field[" ros1" ][" name" ])@ (to));
326
- @ [ end if ]@
327
- @ [ if field[" array" ]]@
328
- }
320
+ req@ (frm).@ (field[" ros" + frm][" name" ]), req@ (to).@ (field[" ros" + to][" name" ]));
329
321
@ [ end if ]@
330
322
@ [ end for ]@
331
323
}
0 commit comments