mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
111 lines
3.4 KiB
C++
111 lines
3.4 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkSMDeserializerXML.cxx
|
|
|
|
Copyright (c) Kitware, Inc.
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
#include "vtkSMDeserializerXML.h"
|
|
|
|
#include "vtkObjectFactory.h"
|
|
#include "vtkPVXMLElement.h"
|
|
#include "vtkSmartPointer.h"
|
|
#include "vtkSMProxy.h"
|
|
#include "vtkSMProxyLocator.h"
|
|
#include "vtkSMSessionProxyManager.h"
|
|
#include "vtkSMSession.h"
|
|
|
|
vtkStandardNewMacro(vtkSMDeserializerXML);
|
|
//----------------------------------------------------------------------------
|
|
vtkSMDeserializerXML::vtkSMDeserializerXML()
|
|
{
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
vtkSMDeserializerXML::~vtkSMDeserializerXML()
|
|
{
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
vtkSMProxy* vtkSMDeserializerXML::NewProxy(vtkTypeUInt32 id,
|
|
vtkSMProxyLocator* locator)
|
|
{
|
|
vtkPVXMLElement* elem = this->LocateProxyElement(id);
|
|
if (!elem)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
const char* group = elem->GetAttribute("group");
|
|
const char* type = elem->GetAttribute("type");
|
|
if (!type)
|
|
{
|
|
vtkErrorMacro("Could not create proxy from element, missing 'type'.");
|
|
return 0;
|
|
}
|
|
|
|
vtkSMProxy* proxy;
|
|
proxy = this->CreateProxy(group, type);
|
|
if (!proxy)
|
|
{
|
|
vtkErrorMacro("Could not create a proxy of group: "
|
|
<< (group? group : "(null)")
|
|
<< " type: " << type);
|
|
return 0;
|
|
}
|
|
|
|
if (!this->LoadProxyState(elem, proxy, locator))
|
|
{
|
|
vtkErrorMacro("Failed to load state correctly.");
|
|
proxy->Delete();
|
|
return 0;
|
|
}
|
|
|
|
this->CreatedNewProxy(id, proxy);
|
|
return proxy;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
vtkSMProxy* vtkSMDeserializerXML::CreateProxy(const char* xmlgroup,
|
|
const char* xmlname,
|
|
const char* subProxyName /*=NULL*/)
|
|
{
|
|
vtkSMSessionProxyManager* pxm = this->GetSessionProxyManager();
|
|
vtkSMProxy* proxy = pxm->NewProxy(xmlgroup, xmlname, subProxyName);
|
|
return proxy;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
vtkPVXMLElement* vtkSMDeserializerXML::LocateProxyElement(vtkTypeUInt32 vtkNotUsed(id))
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
int vtkSMDeserializerXML::LoadProxyState( vtkPVXMLElement* element,
|
|
vtkSMProxy* proxy,
|
|
vtkSMProxyLocator* locator)
|
|
{
|
|
return proxy->LoadXMLState(element, locator);
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
void vtkSMDeserializerXML::CreatedNewProxy(vtkTypeUInt32 vtkNotUsed(id),
|
|
vtkSMProxy* vtkNotUsed(proxy))
|
|
{
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
void vtkSMDeserializerXML::PrintSelf(ostream& os, vtkIndent indent)
|
|
{
|
|
this->Superclass::PrintSelf(os, indent);
|
|
}
|