1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
/*=========================================================================
Program: ParaView
Module: vtkPVProxyDefinitionIterator.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.
=========================================================================*/
/**
* @class vtkPVProxyDefinitionIterator
* @brief iterates over all proxy definitions
* from which the vtkSMProxyManager can use to create new proxy.
* It can also iterate over registered compound proxy definitions.
*
* vtkPVProxyDefinitionIterator iterates over all proxy definitions known to
* the proxy manager. The iterator allow to filter the iteration on a
* subset of group and/or on the global or custom proxies.
* Custom and Compound proxy are exactly the same thing. We should stick with
* only one name.
* @sa
* vtkSMProxyManager
*/
#ifndef vtkPVProxyDefinitionIterator_h
#define vtkPVProxyDefinitionIterator_h
#include "vtkObject.h"
#include "vtkPVServerImplementationCoreModule.h" //needed for exports
class vtkPVXMLElement;
class VTKPVSERVERIMPLEMENTATIONCORE_EXPORT vtkPVProxyDefinitionIterator : public vtkObject
{
public:
vtkTypeMacro(vtkPVProxyDefinitionIterator, vtkObject);
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
// ********* Iterator Commom methods **********
/**
* Move the iterator to the beginning.
*/
virtual void GoToFirstItem() = 0;
/**
* Reset the iterator and move it to the head.
*/
virtual void InitTraversal() { this->GoToFirstItem(); }
/**
* Move the iterator to the next item. This will also move to next group
* automatically if needed.
*/
virtual void GoToNextItem() = 0;
/**
* Move the iterator to the next group.
*/
virtual void GoToNextGroup() = 0;
/**
* Test whether the iterator is currently pointing to a valid
* item.
*/
virtual bool IsDoneWithTraversal() = 0;
// ********* Configuration methods **********
virtual void AddTraversalGroupName(const char* groupName) = 0;
// ********* Access methods **********
// Access methods
/// Return the current group name or NULL if Next() was never called.
virtual const char* GetGroupName() = 0;
/// Return the current proxy name or NULL if Next() was never called.
virtual const char* GetProxyName() = 0;
/// Return true if the current definition has been defined in the Custom scope
virtual bool IsCustom() { return false; };
/// Return the current XML proxy definition
virtual vtkPVXMLElement* GetProxyDefinition() = 0;
/// Return the current XML proxy hints
virtual vtkPVXMLElement* GetProxyHints() = 0;
protected:
vtkPVProxyDefinitionIterator();
virtual ~vtkPVProxyDefinitionIterator();
private:
vtkPVProxyDefinitionIterator(const vtkPVProxyDefinitionIterator&) VTK_DELETE_FUNCTION;
void operator=(const vtkPVProxyDefinitionIterator&) VTK_DELETE_FUNCTION;
};
#endif
|