Mercurial > hg > svcore
comparison transform/ModelTransformer.h @ 877:b109b88bfa85 tonioni
Callback handler for additional models at end of processing
| author | Chris Cannam | 
|---|---|
| date | Wed, 29 Jan 2014 15:58:15 +0000 | 
| parents | 47aa3aeb687b | 
| children | 6ea7761a418b | 
   comparison
  equal
  deleted
  inserted
  replaced
| 876:47aa3aeb687b | 877:b109b88bfa85 | 
|---|---|
| 81 * Return the set of output models created by the transform or | 81 * Return the set of output models created by the transform or | 
| 82 * transforms. Returns an empty list if any transform could not | 82 * transforms. Returns an empty list if any transform could not | 
| 83 * be initialised; an error message may be available via | 83 * be initialised; an error message may be available via | 
| 84 * getMessage() in this situation. | 84 * getMessage() in this situation. | 
| 85 */ | 85 */ | 
| 86 Models getOutputModels(); | 86 Models getOutputModels() { return m_outputs; } | 
| 87 | 87 | 
| 88 /** | 88 /** | 
| 89 * Return the set of output models, also detaching them from the | 89 * Return the set of output models, also detaching them from the | 
| 90 * transformer so that they will not be deleted when the | 90 * transformer so that they will not be deleted when the | 
| 91 * transformer is. The caller takes ownership of the models. | 91 * transformer is. The caller takes ownership of the models. | 
| 92 */ | 92 */ | 
| 93 Models detachOutputModels() { m_detached = true; return getOutputModels(); } | 93 Models detachOutputModels() { | 
| 94 m_detached = true; | |
| 95 return getOutputModels(); | |
| 96 } | |
| 97 | |
| 98 /** | |
| 99 * Return any additional models that were created during | |
| 100 * processing. This might happen if, for example, a transform was | |
| 101 * configured to split a multi-bin output into separate single-bin | |
| 102 * models as it processed. These should not be queried until after | |
| 103 * the transform has completed. | |
| 104 */ | |
| 105 virtual Models getAdditionalOutputModels() { return Models(); } | |
| 106 | |
| 107 /** | |
| 108 * Return true if the current transform is one that may produce | |
| 109 * additional models (to be retrieved through | |
| 110 * getAdditionalOutputModels above). | |
| 111 */ | |
| 112 virtual bool willHaveAdditionalOutputModels() { return false; } | |
| 113 | |
| 114 /** | |
| 115 * Return the set of additional models, also detaching them from | |
| 116 * the transformer. The caller takes ownership of the models. | |
| 117 */ | |
| 118 virtual Models detachAdditionalOutputModels() { | |
| 119 m_detachedAdd = true; | |
| 120 return getAdditionalOutputModels(); | |
| 121 } | |
| 94 | 122 | 
| 95 /** | 123 /** | 
| 96 * Return a warning or error message. If getOutputModel returned | 124 * Return a warning or error message. If getOutputModel returned | 
| 97 * a null pointer, this should contain a fatal error message for | 125 * a null pointer, this should contain a fatal error message for | 
| 98 * the transformer; otherwise it may contain a warning to show to | 126 * the transformer; otherwise it may contain a warning to show to | 
| 102 | 130 | 
| 103 protected: | 131 protected: | 
| 104 ModelTransformer(Input input, const Transform &transform); | 132 ModelTransformer(Input input, const Transform &transform); | 
| 105 ModelTransformer(Input input, const Transforms &transforms); | 133 ModelTransformer(Input input, const Transforms &transforms); | 
| 106 | 134 | 
| 107 /** | |
| 108 * Return any additional models that were created during | |
| 109 * processing. This might happen if, for example, a transform was | |
| 110 * configured to split a multi-bin output into separate single-bin | |
| 111 * models as it processed. | |
| 112 */ | |
| 113 virtual Models getAdditionalOutputModels() { return Models(); } | |
| 114 | |
| 115 Transforms m_transforms; | 135 Transforms m_transforms; | 
| 116 Input m_input; // I don't own the model in this | 136 Input m_input; // I don't own the model in this | 
| 117 Models m_outputs; // I own this, unless... | 137 Models m_outputs; // I own this, unless... | 
| 118 bool m_detached; // ... this is true. | 138 bool m_detached; // ... this is true. | 
| 139 bool m_detachedAdd; | |
| 119 bool m_abandoned; | 140 bool m_abandoned; | 
| 120 QString m_message; | 141 QString m_message; | 
| 121 }; | 142 }; | 
| 122 | 143 | 
| 123 #endif | 144 #endif | 
