Slicer 5.9
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{
45public:
48 vtkTypeMacro(vtkObservation, vtkObject);
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
57 virtual void SetEventBroker(vtkEventBroker* eventBroker);
58 vtkGetObjectMacro(EventBroker, vtkEventBroker);
59 vtkGetMacro(InEventQueue, int);
60 vtkSetMacro(InEventQueue, int);
61 vtkGetObjectMacro(ObservationCallbackCommand, vtkCallbackCommand);
62 vtkGetObjectMacro(Subject, vtkObject);
63 void AssignSubject(vtkObject* subject) { this->Subject = subject; };
64 vtkGetMacro(Event, unsigned long);
65 vtkSetMacro(Event, unsigned long);
66 virtual void SetCallbackCommand(vtkCallbackCommand* callbackCommand);
67 vtkGetObjectMacro(CallbackCommand, vtkCallbackCommand);
68 vtkSetStringMacro(Script);
69 vtkGetStringMacro(Script);
70 vtkGetObjectMacro(Observer, vtkObject);
71 void AssignObserver(vtkObject* observer) { this->Observer = observer; };
72 vtkSetStringMacro(Comment);
73 vtkGetStringMacro(Comment);
74 vtkSetMacro(Priority, float);
75 vtkGetMacro(Priority, float);
76
77 vtkGetMacro(EventTag, unsigned long);
78 vtkSetMacro(EventTag, unsigned long);
79 vtkGetMacro(SubjectDeleteEventTag, unsigned long);
80 vtkSetMacro(SubjectDeleteEventTag, unsigned long);
81 vtkGetMacro(ObserverDeleteEventTag, unsigned long);
82 vtkSetMacro(ObserverDeleteEventTag, unsigned long);
83
87 vtkGetMacro(LastElapsedTime, double);
88 vtkSetMacro(LastElapsedTime, double);
89 vtkGetMacro(TotalElapsedTime, double);
90 vtkSetMacro(TotalElapsedTime, double);
91
92 struct CallType
93 {
94 inline CallType(unsigned long eventID, void* callData);
95 unsigned long EventID;
96 void* CallData;
97 };
98 std::deque<CallType>* GetCallDataList() { return &(this->CallDataList); };
99
100protected:
102 ~vtkObservation() override;
105
109
113 vtkCallbackCommand* ObservationCallbackCommand;
114
120
123 vtkObject* Subject;
124
127 unsigned long Event;
128
131 vtkObject* Observer;
132
135 vtkCallbackCommand* CallbackCommand;
136
139 std::deque<CallType> CallDataList;
140
143 char* Script;
144
147 char* Comment;
148
150 float Priority;
151
155 unsigned long EventTag;
158
161};
162
163//----------------------------------------------------------------------------
164vtkObservation::CallType::CallType(unsigned long eventID, void* callData)
165 : EventID(eventID)
166 , CallData(callData)
167{
168}
169
170#endif
Class that manages adding and deleting of observers with events.
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)