mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
117 lines
3.9 KiB
C++
117 lines
3.9 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkSIProxyProperty.h
|
|
|
|
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.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkSIProxyProperty
|
|
// .SECTION Description
|
|
// ServerSide Property use to set Object array as method argument.
|
|
// Those object could be either SMProxy instance or their SIProxy instance
|
|
// or the VTK object managed by the SIProxy instance. The type of object is
|
|
// specified inside the XML definition of the property with the attribute
|
|
// argument_type=[VTK, SMProxy, SIProxy].
|
|
|
|
#ifndef vtkSIProxyProperty_h
|
|
#define vtkSIProxyProperty_h
|
|
|
|
#include "vtkPVServerImplementationCoreModule.h" //needed for exports
|
|
#include "vtkSIProperty.h"
|
|
|
|
class VTKPVSERVERIMPLEMENTATIONCORE_EXPORT vtkSIProxyProperty : public vtkSIProperty
|
|
{
|
|
public:
|
|
static vtkSIProxyProperty* New();
|
|
vtkTypeMacro(vtkSIProxyProperty, vtkSIProperty);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Command that can be used to remove inputs. If set, this
|
|
// command is called before the main Command is called with
|
|
// all the arguments.
|
|
vtkGetStringMacro(CleanCommand);
|
|
|
|
// Description:
|
|
// Remove command is the command called to remove the VTK
|
|
// object on the server-side. If set, CleanCommand is ignored.
|
|
// Instead for every proxy that was absent from the proxies
|
|
// previously pushed, the RemoveCommand is invoked.
|
|
vtkGetStringMacro(RemoveCommand);
|
|
|
|
// When set to true, the property will push a NULL i.e. 0 when there are no
|
|
// proxies in the property. Not used when CleanCommand or RemoveCommand is
|
|
// set. Default is false.
|
|
vtkGetMacro(NullOnEmpty, bool);
|
|
|
|
//BTX
|
|
protected:
|
|
vtkSIProxyProperty();
|
|
~vtkSIProxyProperty();
|
|
|
|
// Description:
|
|
// Push a new state to the underneath implementation
|
|
virtual bool Push(vtkSMMessage*, int);
|
|
|
|
// Description:
|
|
// Parse the xml for the property.
|
|
virtual bool ReadXMLAttributes(vtkSIProxy* proxyhelper, vtkPVXMLElement* element);
|
|
|
|
// Description:
|
|
// Command that can be used to remove inputs. If set, this
|
|
// command is called before the main Command is called with
|
|
// all the arguments.
|
|
vtkSetStringMacro(CleanCommand);
|
|
char* CleanCommand;
|
|
|
|
// Description:
|
|
// Remove command is the command called to remove the VTK
|
|
// object on the server-side. If set, CleanCommand is ignored.
|
|
// Instead for every proxy that was absent from the proxies
|
|
// previously pushed, the RemoveCommand is invoked.
|
|
vtkSetStringMacro(RemoveCommand);
|
|
char* RemoveCommand;
|
|
|
|
// When set to true, the property will push a NULL i.e. 0 when there are no
|
|
// proxies in the property. Not used when CleanCommand or RemoveCommand is
|
|
// set. Default is false.
|
|
vtkSetMacro(NullOnEmpty, bool);
|
|
bool NullOnEmpty;
|
|
|
|
|
|
enum TypeArg {
|
|
VTK, SMProxy, SIProxy
|
|
};
|
|
|
|
// Proxy type: VTK (default), SMProxy, Kernel,
|
|
// In the XML we expect argument_type="VTK" (default value if not set)
|
|
// argument_type="SMProxy"
|
|
// argument_type="SIProxy"
|
|
TypeArg ArgumentType;
|
|
|
|
// Base on the ArgumentType will return either the VTK object or the SMProxy object
|
|
vtkObjectBase* GetObjectBase(vtkTypeUInt32 globalId);
|
|
|
|
// Allow to detect if a null argument is really meant to be null
|
|
bool IsValidNull(vtkTypeUInt32 globalId);
|
|
|
|
private:
|
|
vtkSIProxyProperty(const vtkSIProxyProperty&); // Not implemented
|
|
void operator=(const vtkSIProxyProperty&); // Not implemented
|
|
class InternalCache;
|
|
InternalCache *Cache;
|
|
|
|
class vtkObjectCache;
|
|
vtkObjectCache* ObjectCache;
|
|
//ETX
|
|
};
|
|
|
|
#endif
|