HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
PDG_EventHandler.h
Go to the documentation of this file.
1
/*
2
* PROPRIETARY INFORMATION. This software is proprietary to
3
* Side Effects Software Inc., and is not to be reproduced,
4
* transmitted, or disclosed in any way without written permission.
5
*
6
* COMMENTS:
7
*/
8
9
#ifndef __PDG_EVENT_HANDLER_H__
10
#define __PDG_EVENT_HANDLER_H__
11
12
#include "
PDG_API.h
"
13
#include "
PDG_Types.h
"
14
15
#include <
UT/UT_Set.h
>
16
#include <
UT/UT_TBBSpinLock.h
>
17
18
class
PDG_Event
;
19
class
PDG_EventEmitter
;
20
21
class
PDG_API
PDG_EventHandler
22
{
23
public
:
24
using
EmitterSet
=
UT_Set<PDG_EventEmitter*>
;
25
26
public
:
27
PDG_EventHandler
(
28
PDG_BaseType::Language
language=
PDG_BaseType::eCpp
,
29
bool
user_handler=
false
);
30
virtual
~
PDG_EventHandler
();
31
32
virtual
void
handlePDGEvent(
const
PDG_Event
&) = 0;
33
virtual
void
eventEmitterNotAvailable
(
PDG_EventEmitter
*emitter)
34
{ };
35
36
void
removeFromAllEmitters();
37
void
emitters(EmitterSet& emitters)
const
;
38
39
PDG_BaseType::Language
language
()
const
40
{
return
myLanguage; }
41
bool
isUserHandler
()
const
42
{
return
myIsUserHandler; }
43
44
private
:
45
friend
class
PDG_EventEmitter
;
46
47
void
registerEventEmitter(
PDG_EventEmitter
*emitter);
48
void
unregisterEventEmitter(
PDG_EventEmitter
*emitter);
49
50
private
:
51
mutable
UT_TBBSpinLock
myEmittersLock;
52
EmitterSet
myEmitters;
53
PDG_BaseType::Language
myLanguage;
54
bool
myIsUserHandler;
55
};
56
57
#endif
UT_Set< PDG_EventEmitter * >
UT_Lockable< tbb::spin_mutex >
PDG_API
#define PDG_API
Definition:
PDG_API.h:23
PDG_Types.h
PDG_EventHandler::eventEmitterNotAvailable
virtual void eventEmitterNotAvailable(PDG_EventEmitter *emitter)
Definition:
PDG_EventHandler.h:33
PDG_EventEmitter
Definition:
PDG_EventEmitter.h:26
UT_TBBSpinLock.h
PDG_Event
Definition:
PDG_Event.h:25
UT_Set.h
PDG_EventHandler
Definition:
PDG_EventHandler.h:21
PDG_EventHandler::isUserHandler
bool isUserHandler() const
Definition:
PDG_EventHandler.h:41
PDGT_BaseType::Language
Language
Definition:
PDGT_BaseType.h:42
PDG_EventHandler::language
PDG_BaseType::Language language() const
Definition:
PDG_EventHandler.h:39
PDG_API.h
PDGT_BaseType::eCpp
Definition:
PDGT_BaseType.h:45
PDG
PDG_EventHandler.h
Generated on Thu May 9 2024 03:15:31 for HDK by
1.8.6