Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkObservation.h
Go to the documentation of this file.
1/*=auto=========================================================================
2
3 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8 Program: 3D Slicer
9 Module: $RCSfile: vtkObservation.h,v $
10 Date: $Date: 2006/01/08 04:48:05 $
11 Version: $Revision: 1.45 $
12
13=========================================================================auto=*/
14
15#ifndef __vtkObservation_h
16#define __vtkObservation_h
17
18// MRML includes
19#include "vtkMRML.h"
20class vtkEventBroker;
21
22// VTK includes
23#include <vtkObject.h>
24class vtkCallbackCommand;
25
26// STD includes
27#include <deque>
28
40//
43class VTK_MRML_EXPORT vtkObservation : public vtkObject
44{
45 public:
46
49 vtkTypeMacro(vtkObservation,vtkObject);
50 void PrintSelf(ostream& os, vtkIndent indent) override;
51
58 virtual void SetEventBroker(vtkEventBroker* eventBroker);
59 vtkGetObjectMacro (EventBroker, vtkEventBroker);
60 vtkGetMacro (InEventQueue, int);
61 vtkSetMacro (InEventQueue, int);
62 vtkGetObjectMacro (ObservationCallbackCommand, vtkCallbackCommand);
63 vtkGetObjectMacro (Subject, vtkObject);
64 void AssignSubject(vtkObject* subject) {this->Subject = subject;};
65 vtkGetMacro (Event, unsigned long);
66 vtkSetMacro (Event, unsigned long);
67 virtual void SetCallbackCommand(vtkCallbackCommand* callbackCommand);
68 vtkGetObjectMacro (CallbackCommand, vtkCallbackCommand);
69 vtkSetStringMacro (Script);
70 vtkGetStringMacro (Script);
71 vtkGetObjectMacro (Observer, vtkObject);
72 void AssignObserver(vtkObject* observer) {this->Observer = observer;};
73 vtkSetStringMacro (Comment);
74 vtkGetStringMacro (Comment);
75 vtkSetMacro(Priority, float);
76 vtkGetMacro(Priority, float);
77
78 vtkGetMacro (EventTag, unsigned long);
79 vtkSetMacro (EventTag, unsigned long);
80 vtkGetMacro (SubjectDeleteEventTag, unsigned long);
81 vtkSetMacro (SubjectDeleteEventTag, unsigned long);
82 vtkGetMacro (ObserverDeleteEventTag, unsigned long);
83 vtkSetMacro (ObserverDeleteEventTag, unsigned long);
84
88 vtkGetMacro (LastElapsedTime, double);
89 vtkSetMacro (LastElapsedTime, double);
90 vtkGetMacro (TotalElapsedTime, double);
91 vtkSetMacro (TotalElapsedTime, double);
92
93 struct CallType
94 {
95 inline CallType(unsigned long eventID, void* callData);
96 unsigned long EventID;
97 void* CallData;
98 };
99 std::deque<CallType> *GetCallDataList() {return &(this->CallDataList);};
100
101protected:
103 ~vtkObservation() override;
106
110
114 vtkCallbackCommand *ObservationCallbackCommand;
115
121
124 vtkObject *Subject;
125
128 unsigned long Event;
129
132 vtkObject *Observer;
133
136 vtkCallbackCommand *CallbackCommand;
137
140 std::deque<CallType> CallDataList;
141
144 char *Script;
145
148 char *Comment;
149
151 float Priority;
152
156 unsigned long EventTag;
159
162
163};
164
165//----------------------------------------------------------------------------
166vtkObservation::CallType::CallType(unsigned long eventID, void* callData)
167 : EventID(eventID)
168 , CallData(callData)
169{
170}
171
172
173#endif
Class that manages adding and deleting of observers with events.
Stores information about the relationship between a Subject and an Observer.
unsigned long SubjectDeleteEventTag
void PrintSelf(ostream &os, vtkIndent indent) override
float Priority
Priority of the observer.
unsigned long ObserverDeleteEventTag
void AssignObserver(vtkObject *observer)
virtual void SetEventBroker(vtkEventBroker *eventBroker)
~vtkObservation() override
vtkCallbackCommand * CallbackCommand
Holder for callback that the Observer wants to have run when Event happens.
vtkEventBroker * EventBroker
EventBroker that 'owns' this observation.
static vtkObservation * New()
The Usual vtk class functions.
unsigned long Event
Holder for Event.
char * Script
Holder for script as an alternative to the callback command.
virtual void SetCallbackCommand(vtkCallbackCommand *callbackCommand)
vtkCallbackCommand * ObservationCallbackCommand
std::deque< CallType > * GetCallDataList()
char * Comment
Holder for comment string.
unsigned long EventTag
vtkObject * Observer
Holder for Observer.
vtkObservation(const vtkObservation &)
vtkObject * Subject
Holder for Subject.
void AssignSubject(vtkObject *subject)
std::deque< CallType > CallDataList
data passed to the observation by the subject
void operator=(const vtkObservation &)
CallType(unsigned long eventID, void *callData)