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 
68  void UnregisterObject(vtkObject* object);
69 
74  void PrepareProgress();
75 
80  void AddHandlers();
81 
86  bool GetEnableProgress();
87 
92  void CleanupPendingProgress();
93 
97  void LocalCleanupPendingProgress();
98 
100 
105  vtkSetClampMacro(ProgressInterval, double, 0.01, 30.0);
106  vtkGetMacro(ProgressInterval, double);
108 
110 
113  vtkGetStringMacro(LastProgressText);
114  vtkGetMacro(LastProgress, int);
115  vtkGetMacro(LastProgressId, vtkTypeUInt32);
117 
126  void Abort(vtkTypeUInt32 objectId);
127 
131  std::set<int> GetAbortedObjectIds();
132 
136  void ClearAbortedObjectIds();
137 
141  void EnableAbortCheck(vtkTypeUInt32 objectId);
142 
146  void DisableAbortCheck(vtkTypeUInt32 objectId);
147 
148 protected:
150  ~vtkPVProgressHandler() override;
151 
152  enum TAGS
153  {
154  ABORT_TAG = 188968,
155  CLEANUP_TAG = 188969,
156  PROGRESS_EVENT_TAG = 188970,
157  MESSAGE_EVENT_TAG = 188971
158  };
159 
160  enum RMI_TAGS
161  {
162  CLEANUP_TAG_RMI = 188972,
163  MESSAGE_EVENT_TAG_RMI = 188973
164  };
165 
169  void RefreshProgress(const char* progress_text, double progress, vtkTypeUInt32 progress_id);
170 
173 
174 private:
176  void operator=(const vtkPVProgressHandler&) = delete;
177 
181  void OnProgressEvent(vtkObject* caller, unsigned long eventid, void* calldata);
182 
188  void OnMessageEvent(vtkObject* caller, unsigned long eventid, void* calldata);
189 
193  bool OnWrongTagEvent(vtkObject* caller, unsigned long eventid, void* calldata);
194 
198  void RefreshMessage(const char* message_text, int eventid, bool is_local);
199 
206  void CheckAbort(vtkTypeUInt32 progressId, vtkObject* caller, vtkObject* communicator);
207 
208  bool AddedHandlers;
209  class vtkInternals;
210  vtkInternals* Internals;
211 
212  vtkSetStringMacro(LastProgressText);
213  int LastProgress;
214  char* LastProgressText;
215  vtkTypeUInt32 LastProgressId;
216 
217  class RMICallback;
218  friend class RMICallback;
219  ;
220 };
221 
222 #endif
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
vtkPVSession defines a session i.e.
Definition: vtkPVSession.h:25
#define VTKREMOTINGCORE_EXPORT
static vtkObject * New()
void operator=(const vtkObjectBase &)
progress handler.