vtkPVProgressHandler.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
34 #ifndef vtkPVProgressHandler_h
35 #define vtkPVProgressHandler_h
36 
37 #include "vtkObject.h"
38 #include "vtkRemotingCoreModule.h" //needed for exports
39 
40 #include <set>
41 
43 class vtkPVSession;
44 
46 {
47 public:
48  static vtkPVProgressHandler* New();
50  void PrintSelf(ostream& os, vtkIndent indent) override;
51 
53 
56  void SetSession(vtkPVSession* conn);
57  vtkGetObjectMacro(Session, vtkPVSession);
59 
63  void RegisterProgressEvent(vtkObject* object, int id);
64 
69  void PrepareProgress();
70 
75  void AddHandlers();
76 
81  bool GetEnableProgress();
82 
87  void CleanupPendingProgress();
88 
92  void LocalCleanupPendingProgress();
93 
95 
100  vtkSetClampMacro(ProgressInterval, double, 0.01, 30.0);
101  vtkGetMacro(ProgressInterval, double);
103 
105 
108  vtkGetStringMacro(LastProgressText);
109  vtkGetMacro(LastProgress, int);
110  vtkGetMacro(LastProgressId, vtkTypeUInt32);
112 
121  void Abort(vtkTypeUInt32 objectId);
122 
126  std::set<int> GetAbortedObjectIds();
127 
131  void ClearAbortedObjectIds();
132 
136  void EnableAbortCheck(vtkTypeUInt32 objectId);
137 
138 protected:
140  ~vtkPVProgressHandler() override;
141 
142  enum TAGS
143  {
144  ABORT_TAG = 188968,
145  CLEANUP_TAG = 188969,
146  PROGRESS_EVENT_TAG = 188970,
147  MESSAGE_EVENT_TAG = 188971
148  };
149 
150  enum RMI_TAGS
151  {
152  CLEANUP_TAG_RMI = 188972,
153  MESSAGE_EVENT_TAG_RMI = 188973
154  };
155 
159  void RefreshProgress(const char* progress_text, double progress, vtkTypeUInt32 progress_id);
160 
163 
164 private:
166  void operator=(const vtkPVProgressHandler&) = delete;
167 
171  void OnProgressEvent(vtkObject* caller, unsigned long eventid, void* calldata);
172 
178  void OnMessageEvent(vtkObject* caller, unsigned long eventid, void* calldata);
179 
183  bool OnWrongTagEvent(vtkObject* caller, unsigned long eventid, void* calldata);
184 
188  void RefreshMessage(const char* message_text, int eventid, bool is_local);
189 
196  void CheckAbort(vtkTypeUInt32 progressId, vtkObject* caller, vtkObject* communicator);
197 
198  bool AddedHandlers;
199  class vtkInternals;
200  vtkInternals* Internals;
201 
202  vtkSetStringMacro(LastProgressText);
203  int LastProgress;
204  char* LastProgressText;
205  vtkTypeUInt32 LastProgressId;
206 
207  class RMICallback;
208  friend class RMICallback;
209  ;
210 };
211 
212 #endif
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
extends vtkSession to add API for ParaView sessions.
Definition: vtkPVSession.h:23
#define VTKREMOTINGCORE_EXPORT
static vtkObject * New()
void operator=(const vtkObjectBase &)
progress handler.