------------------------------------------------------------------------------
| 119 | |
| 120 | //------------------------------------------------------------------------------ |
| 121 | vtkTypeBool vtkStreamingDemandDrivenPipeline ::ProcessRequest( |
| 122 | vtkInformation* request, vtkInformationVector** inInfoVec, vtkInformationVector* outInfoVec) |
| 123 | { |
| 124 | // The algorithm should not invoke anything on the executive. |
| 125 | if (!this->CheckAlgorithm("ProcessRequest", request)) |
| 126 | { |
| 127 | return 0; |
| 128 | } |
| 129 | |
| 130 | // Look for specially supported requests. |
| 131 | if (request->Has(REQUEST_UPDATE_TIME())) |
| 132 | { |
| 133 | int result = 1; |
| 134 | int outputPort = -1; |
| 135 | if (request->Has(FROM_OUTPUT_PORT())) |
| 136 | { |
| 137 | outputPort = request->Get(FROM_OUTPUT_PORT()); |
| 138 | } |
| 139 | |
| 140 | int N2E = this->Superclass::NeedToExecuteData(outputPort, inInfoVec, outInfoVec); |
| 141 | if (!N2E && outputPort >= 0) |
| 142 | { |
| 143 | vtkInformation* outInfo = outInfoVec->GetInformationObject(outputPort); |
| 144 | vtkDataObject* dataObject = outInfo->Get(vtkDataObject::DATA_OBJECT()); |
| 145 | if (outInfo->Has(TIME_DEPENDENT_INFORMATION())) |
| 146 | { |
| 147 | N2E = this->NeedToExecuteBasedOnTime(outInfo, dataObject); |
| 148 | } |
| 149 | else |
| 150 | { |
| 151 | N2E = 0; |
| 152 | } |
| 153 | } |
| 154 | |
| 155 | if (N2E) |
| 156 | { |
| 157 | vtkLogF(TRACE, "%s execute-update-time", vtkLogIdentifier(this->Algorithm)); |
| 158 | result = this->CallAlgorithm(request, vtkExecutive::RequestUpstream, inInfoVec, outInfoVec); |
| 159 | |
| 160 | // Propagate the update time to all inputs. |
| 161 | if (result) |
| 162 | { |
| 163 | result = this->ForwardUpstream(request); |
| 164 | } |
| 165 | result = 1; |
| 166 | } |
| 167 | return result; |
| 168 | } |
| 169 | |
| 170 | // Look for specially supported requests. |
| 171 | if (request->Has(REQUEST_TIME_DEPENDENT_INFORMATION())) |
| 172 | { |
| 173 | int result = 1; |
| 174 | int outputPort = -1; |
| 175 | if (request->Has(FROM_OUTPUT_PORT())) |
| 176 | { |
| 177 | outputPort = request->Get(FROM_OUTPUT_PORT()); |
| 178 | } |
no test coverage detected