Mercurial > hg > svcore
diff transform/ModelTransformer.h @ 890:4cbf8c6a462d tony_integration
Merge from branch tonioni
author | Chris Cannam |
---|---|
date | Tue, 11 Mar 2014 17:30:35 +0000 |
parents | b109b88bfa85 |
children | 6ea7761a418b |
line wrap: on
line diff
--- a/transform/ModelTransformer.h Tue Jan 28 15:01:54 2014 +0000 +++ b/transform/ModelTransformer.h Tue Mar 11 17:30:35 2014 +0000 @@ -90,7 +90,35 @@ * transformer so that they will not be deleted when the * transformer is. The caller takes ownership of the models. */ - Models detachOutputModels() { m_detached = true; return m_outputs; } + Models detachOutputModels() { + m_detached = true; + return getOutputModels(); + } + + /** + * Return any additional models that were created during + * processing. This might happen if, for example, a transform was + * configured to split a multi-bin output into separate single-bin + * models as it processed. These should not be queried until after + * the transform has completed. + */ + virtual Models getAdditionalOutputModels() { return Models(); } + + /** + * Return true if the current transform is one that may produce + * additional models (to be retrieved through + * getAdditionalOutputModels above). + */ + virtual bool willHaveAdditionalOutputModels() { return false; } + + /** + * Return the set of additional models, also detaching them from + * the transformer. The caller takes ownership of the models. + */ + virtual Models detachAdditionalOutputModels() { + m_detachedAdd = true; + return getAdditionalOutputModels(); + } /** * Return a warning or error message. If getOutputModel returned @@ -108,6 +136,7 @@ Input m_input; // I don't own the model in this Models m_outputs; // I own this, unless... bool m_detached; // ... this is true. + bool m_detachedAdd; bool m_abandoned; QString m_message; };