MCPcopy Create free account
hub / github.com/Kitware/VTK / RequestDataObject

Method RequestDataObject

IO/XML/vtkXMLGenericDataObjectReader.cxx:216–288  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

214
215//------------------------------------------------------------------------------
216int vtkXMLGenericDataObjectReader::RequestDataObject(
217 vtkInformation* request, vtkInformationVector** inputVector, vtkInformationVector* outputVector)
218{
219 if (!this->Stream && !this->FileName)
220 {
221 vtkErrorMacro("File name not specified");
222 return 0;
223 }
224
225 if (this->Reader != nullptr)
226 {
227 if (auto observer = this->GetReaderErrorObserver())
228 {
229 this->Reader->RemoveObserver(observer);
230 }
231 if (auto observer = this->GetParserErrorObserver())
232 {
233 this->Reader->RemoveObserver(observer);
234 }
235 this->Reader->Delete();
236 this->Reader = nullptr;
237 }
238
239 vtkDataObject* output = nullptr;
240
241 // Create reader.
242 bool parallel = false;
243 auto data_type = this->ReadOutputType(this->FileName, parallel);
244 if (auto reader = vtkXMLGenericDataObjectReader::CreateReader(data_type, parallel))
245 {
246 output = vtkDataObjectTypes::NewDataObject(data_type);
247 this->Reader = reader;
248 this->Reader->Register(this);
249 }
250 else
251 {
252 this->Reader = nullptr;
253 }
254
255 if (this->Reader != nullptr)
256 {
257 this->Reader->SetFileName(this->GetFileName());
258 // this->Reader->SetStream(this->GetStream());
259 // Delegate the error observers
260 if (this->GetReaderErrorObserver())
261 {
262 this->Reader->AddObserver(vtkCommand::ErrorEvent, this->GetReaderErrorObserver());
263 }
264 if (this->GetParserErrorObserver())
265 {
266 this->Reader->SetParserErrorObserver(this->GetParserErrorObserver());
267 }
268 // Delegate call. RequestDataObject() would be more appropriate but it is
269 // protected.
270 int result = this->Reader->ProcessRequest(request, inputVector, outputVector);
271 if (result)
272 {
273 vtkInformation* outInfo = outputVector->GetInformationObject(0);

Callers

nothing calls this directly

Calls 10

ReadOutputTypeMethod · 0.95
GetInformationObjectMethod · 0.80
DeleteMethod · 0.65
RemoveObserverMethod · 0.45
RegisterMethod · 0.45
SetFileNameMethod · 0.45
GetFileNameMethod · 0.45
AddObserverMethod · 0.45
ProcessRequestMethod · 0.45
SetMethod · 0.45

Tested by

no test coverage detected