mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
210 lines
6.6 KiB
C++
210 lines
6.6 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkSMProxyManager.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 vtkSMProxyManager - singleton/facade to vtkSMSessionProxyManager
|
|
// .SECTION Description
|
|
// vtkSMProxyManager is a singleton/facade that creates and manages proxies.
|
|
// It maintains a map of vtkSMSessionProxyManager and delegate all proxy related
|
|
// call to the appropriate one based on the provided session.
|
|
// .SECTION See Also
|
|
// vtkSMSessionProxyManager, vtkSMProxyDefinitionManager
|
|
|
|
#ifndef vtkSMProxyManager_h
|
|
#define vtkSMProxyManager_h
|
|
|
|
#include "vtkPVServerManagerCoreModule.h" //needed for exports
|
|
#include "vtkSMObject.h"
|
|
#include "vtkSmartPointer.h" // Needed for the singleton
|
|
|
|
class vtkPVXMLElement;
|
|
class vtkSMPluginManager;
|
|
class vtkSMProxy;
|
|
class vtkSMProxyLocator;
|
|
class vtkSMProxySelectionModel;
|
|
class vtkSMReaderFactory;
|
|
class vtkSMSession;
|
|
class vtkSMSessionProxyManager;
|
|
class vtkSMStateLoader;
|
|
class vtkSMUndoStackBuilder;
|
|
class vtkSMWriterFactory;
|
|
|
|
class VTKPVSERVERMANAGERCORE_EXPORT vtkSMProxyManager : public vtkSMObject
|
|
{
|
|
public:
|
|
vtkTypeMacro(vtkSMProxyManager, vtkSMObject);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Provides access to the global ProxyManager.
|
|
static vtkSMProxyManager* GetProxyManager();
|
|
|
|
// Description:
|
|
// Free the singleton
|
|
static void Finalize();
|
|
|
|
// Description:
|
|
// Allow to check if the Singleton has been initialized and has a reference
|
|
// to a valid ProxyManager
|
|
static bool IsInitialized();
|
|
|
|
// Description:
|
|
// These methods can be used to obtain the ProxyManager version number.
|
|
// Returns the major version number eg. if version is 2.9.1
|
|
// this method will return 2.
|
|
static int GetVersionMajor();
|
|
|
|
// Description:
|
|
// These methods can be used to obtain the ProxyManager version number.
|
|
// Returns the minor version number eg. if version is 2.9.1
|
|
// this method will return 9.
|
|
static int GetVersionMinor();
|
|
|
|
// Description:
|
|
// These methods can be used to obtain the ProxyManager version number.
|
|
// Returns the patch version number eg. if version is 2.9.1
|
|
// this method will return 1.
|
|
static int GetVersionPatch();
|
|
|
|
// Description:
|
|
// Returns a string with the format "paraview version x.x.x, Date: YYYY-MM-DD"
|
|
static const char* GetParaViewSourceVersion();
|
|
|
|
// Description:
|
|
// Returns the current active session. If no active session is set, and
|
|
// there's only one registered vtkSMSession with vtkProcessModule, then that
|
|
// session is automatically treated as the active session.
|
|
vtkSMSession* GetActiveSession();
|
|
|
|
// Description:
|
|
// Set the active session. It's acceptable to set the active session as NULL
|
|
// (or 0 in case of sessionId), however GetActiveSession() may automatically
|
|
// pick an active session if none is provided.
|
|
void SetActiveSession(vtkSMSession* session);
|
|
void SetActiveSession(vtkIdType sessionId);
|
|
|
|
// Description:
|
|
// Convenient method to get the active vtkSMSessionProxyManager. If no
|
|
vtkSMSessionProxyManager* GetActiveSessionProxyManager();
|
|
|
|
// Description:
|
|
// Return the corresponding vtkSMSessionProxyManager and if any,
|
|
// then create a new one.
|
|
vtkSMSessionProxyManager* GetSessionProxyManager(vtkSMSession* session);
|
|
|
|
// Description:
|
|
// Calls forwarded to the active vtkSMSessionProxyManager, if any. Raises
|
|
// errors if no active session manager can be determined (using
|
|
// GetActiveSessionProxyManager()).
|
|
vtkSMProxy* NewProxy(const char* groupName,
|
|
const char* proxyName, const char* subProxyName = NULL);
|
|
void RegisterProxy(const char* groupname, const char* name, vtkSMProxy* proxy);
|
|
vtkSMProxy* GetProxy(const char* groupname, const char* name);
|
|
void UnRegisterProxy(const char* groupname, const char* name, vtkSMProxy*);
|
|
const char* GetProxyName(const char* groupname, unsigned int idx);
|
|
const char* GetProxyName(const char* groupname, vtkSMProxy* proxy);
|
|
|
|
// Description:
|
|
// Get/Set the undo-stack builder if the application is using undo-redo
|
|
// mechanism to track changes.
|
|
void SetUndoStackBuilder(vtkSMUndoStackBuilder* builder);
|
|
vtkGetObjectMacro(UndoStackBuilder, vtkSMUndoStackBuilder);
|
|
|
|
// Description:
|
|
// PluginManager keeps track of plugins loaded on various sessions.
|
|
// This provides access to the application-wide plugin manager.
|
|
vtkGetObjectMacro(PluginManager, vtkSMPluginManager);
|
|
|
|
// Description:
|
|
// Provides access to the reader factory. Before using the reader factory, it
|
|
// is essential that it's configured correctly.
|
|
vtkGetObjectMacro(ReaderFactory, vtkSMReaderFactory);
|
|
|
|
// Description:
|
|
// Provides access to the writer factory. Before using the reader factory, it
|
|
// is essential that it's configured correctly.
|
|
vtkGetObjectMacro(WriterFactory, vtkSMWriterFactory);
|
|
|
|
|
|
enum eventId
|
|
{
|
|
ActiveSessionChanged = 9753
|
|
};
|
|
|
|
struct RegisteredProxyInformation
|
|
{
|
|
vtkSMProxy* Proxy;
|
|
const char* GroupName;
|
|
const char* ProxyName;
|
|
// Set when the register/unregister event if fired for registration of
|
|
// a compound proxy definition.
|
|
unsigned int Type;
|
|
|
|
enum
|
|
{
|
|
PROXY =0x1,
|
|
COMPOUND_PROXY_DEFINITION = 0x2,
|
|
LINK = 0x3,
|
|
};
|
|
};
|
|
|
|
struct ModifiedPropertyInformation
|
|
{
|
|
vtkSMProxy* Proxy;
|
|
const char* PropertyName;
|
|
};
|
|
|
|
struct LoadStateInformation
|
|
{
|
|
vtkPVXMLElement* RootElement;
|
|
vtkSMProxyLocator* ProxyLocator;
|
|
};
|
|
|
|
struct StateChangedInformation
|
|
{
|
|
vtkSMProxy* Proxy;
|
|
vtkPVXMLElement* StateChangeElement;
|
|
};
|
|
|
|
//BTX
|
|
protected:
|
|
vtkSMProxyManager();
|
|
~vtkSMProxyManager();
|
|
#ifndef __WRAP__
|
|
static vtkSMProxyManager* New();
|
|
#endif
|
|
|
|
friend class vtkSMSessionProxyManager;
|
|
|
|
// Description:
|
|
// Connections updated. Update the active session accordingly.
|
|
void ConnectionsUpdated(vtkObject*, unsigned long, void*);
|
|
|
|
vtkSMUndoStackBuilder* UndoStackBuilder;
|
|
vtkSMPluginManager* PluginManager;
|
|
vtkSMReaderFactory* ReaderFactory;
|
|
vtkSMWriterFactory* WriterFactory;
|
|
|
|
private:
|
|
class vtkPXMInternal;
|
|
vtkPXMInternal* PXMStorage;
|
|
|
|
static vtkSmartPointer<vtkSMProxyManager> Singleton;
|
|
|
|
vtkSMProxyManager(const vtkSMProxyManager&); // Not implemented
|
|
void operator=(const vtkSMProxyManager&); // Not implemented
|
|
//ETX
|
|
};
|
|
|
|
#endif
|