<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hello Rashad,<div><br></div><div>If you call ImageFileReader::UpdateOutputInformation() 2 times is "should" only call GenerateOutputInformation once.</div><div><br></div><div>The key to this behavior is the management of the timestamps in the process object classes done here [1].</div><div><br></div><div>What is required for this to work correctly is that the only the correct object get modified in these pipeline methods. When an object is modified the timestamp should be updated, and downstream processes get marked as out of date.</div><div><br></div><div>The best way to make sure your ImageSource does not get call twice is to write a test, that makes sure the process object's MTime does not change in GenerateOutputInformation call.</div><div><br></div><div>HTH,</div><div>Brad</div><div><br></div><div>[1] <a href="https://github.com/InsightSoftwareConsortium/ITK/blob/9f88e4e3b388ee2f1c1c006ae36de0613d305284/Modules/Core/Common/src/itkProcessObject.cxx#L1431-L1542">https://github.com/InsightSoftwareConsortium/ITK/blob/9f88e4e3b388ee2f1c1c006ae36de0613d305284/Modules/Core/Common/src/itkProcessObject.cxx#L1431-L1542</a></div><div><br><div><div><div>On Aug 13, 2015, at 2:55 PM, Rashad M <<a href="mailto:mohammedrashadkm@gmail.com">mohammedrashadkm@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr">Hello all,<div><br></div><div>The documentation of   itk::ProcessObject::GenerateOutputInformation( )  says</div><div><span style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; line-height: 22px;">Generate the information describing the output data. [1]. The </span>GenerateOutputInformation() in itkImageFileReader first create all instances of ImageIO and setup direction, spacing, etc.. </div><div><br></div><div>If I understand correctly, the GenerateOutputInformation in the image file reader is  called by UpdateOutputInformation( )</div><div><br></div><div>To my question, </div><div>If I call reader->UpdateOutputInformation() for first time it calls </div><div>reader->GenerateOutputInformation() as described in docs[2]. </div><div><br></div><div>Now If I have a second call to reader->UpdateOutputInformation( ) ?</div><div><br></div><div>Will it again go to GenerateOutputInformation() and createAllInstances of imageio , do the same thing again!</div><div><br></div><div>In itkProcessObject.cxx, there is the below documentation</div><div><br></div><div><div>   * Call GenerateOutputInformation for subclass specific information.</div><div>   * Since UpdateOutputInformation propagates all the way up the pipeline,</div><div>   * we need to be careful here to call GenerateOutputInformation only if</div><div>   * necessary. Otherwise, we may cause this source to be modified which</div><div>   * will cause it to execute again on the next update.</div></div><div><br></div><div>How can I prevent it from calling it again in class sub class of itk::ImageSource?</div><div><br></div><div><font face="Lucida Grande, Verdana, Geneva, Arial, sans-serif"><span style="font-size:12px;line-height:22px">[1]<a href="http://www.itk.org/Doxygen/html/classitk_1_1ProcessObject.html#abe61fb6b7de8c443e7af1561bd722736">http://www.itk.org/Doxygen/html/classitk_1_1ProcessObject.html#abe61fb6b7de8c443e7af1561bd722736</a></span></font><br></div><div><font face="Lucida Grande, Verdana, Geneva, Arial, sans-serif"><span style="font-size:12px;line-height:22px"><br></span></font></div><div><div><br></div>-- <br><div class="gmail_signature"><font face="arial, helvetica, sans-serif">Regards,<br>   Rashad</font></div>
</div></div>
_______________________________________________<br>Powered by <a href="http://www.kitware.com">www.kitware.com</a><br><br>Visit other Kitware open-source projects at<br><a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br><br>Kitware offers ITK Training Courses, for more information visit:<br>http://kitware.com/products/protraining.php<br><br>Please keep messages on-topic and check the ITK FAQ at:<br>http://www.itk.org/Wiki/ITK_FAQ<br><br>Follow this link to subscribe/unsubscribe:<br>http://public.kitware.com/mailman/listinfo/insight-developers<br></blockquote></div><br></div></div></body></html>