HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PDG_EventTypes.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_TYPES_H__
10 #define __PDG_EVENT_TYPES_H__
11 
12 #include <UT/UT_Optional.h>
13 
14 #define PDG_EVENT_QUEUE_DEBUG 0
15 
16 #if PDG_EVENT_QUEUE_DEBUG
17 
18 #include <hboost/preprocessor/variadic/to_list.hpp>
19 #include <hboost/preprocessor/list/for_each.hpp>
20 
21 #define CREATE_EVENT_STRING(r, data, event) \
22  case event: return #event;
23 
24 #define CREATE_ENUM(...) enum PDG_EventType { __VA_ARGS__ };
25 #define CREATE_STRINGS(...) \
26 HBOOST_PP_LIST_FOR_EACH(CREATE_EVENT_STRING, _,\
27  HBOOST_PP_VARIADIC_TO_LIST(__VA_ARGS__))
28 
29 #define PDG_EVENT_BUILD_ENUM(...) \
30 CREATE_ENUM(__VA_ARGS__)\
31 inline const char* pdg_getEventString(PDG_EventType event) \
32 {\
33  switch (event)\
34  {\
35 CREATE_STRINGS(__VA_ARGS__)\
36  }\
37  return "Unkown event";\
38 }
39 
40 #else
41 #define PDG_EVENT_BUILD_ENUM(...) enum PDG_EventType { __VA_ARGS__};
42 #endif
43 
45  PDG_EVENT_NULL,
46  PDG_EVENT_WORKITEM_ADD,
47  PDG_EVENT_WORKITEM_REMOVE,
48  PDG_EVENT_WORKITEM_STATE_CHANGE,
49  PDG_EVENT_WORKITEM_COOK_PERCENT_UPDATE,
50 
51  PDG_EVENT_WORKITEM_ADD_DEP,
52  PDG_EVENT_WORKITEM_REMOVE_DEP,
53 
54  PDG_EVENT_WORKITEM_ADD_PARENT,
55  PDG_EVENT_WORKITEM_REMOVE_PARENT,
56 
57  PDG_EVENT_NODE_CLEAR,
58 
59  PDG_EVENT_COOK_ERROR,
60  PDG_EVENT_COOK_WARNING,
61 
62  PDG_EVENT_COOK_COMPLETE,
63 
64  PDG_EVENT_DIRTY_START,
65  PDG_EVENT_DIRTY_STOP,
66 
67  PDG_EVENT_DIRTY_ALL,
68 
69  PDG_EVENT_UI_SELECT,
70 
71  PDG_EVENT_NODE_CREATE,
72  PDG_EVENT_NODE_REMOVE,
73  PDG_EVENT_NODE_RENAME,
74  PDG_EVENT_NODE_CONNECT,
75  PDG_EVENT_NODE_DISCONNECT,
76  PDG_EVENT_NODE_FIRST_COOK,
77 
78  PDG_EVENT_NODE_GENERATED,
79  PDG_EVENT_NODE_COOKED,
80 
81  PDG_EVENT_WORKITEM_SET_INT,
82  PDG_EVENT_WORKITEM_SET_FLOAT,
83  PDG_EVENT_WORKITEM_SET_STRING,
84  PDG_EVENT_WORKITEM_SET_FILE,
85  PDG_EVENT_WORKITEM_SET_PYOBJECT,
86  PDG_EVENT_WORKITEM_SET_GEOMETRY,
87  PDG_EVENT_WORKITEM_MERGE,
88  PDG_EVENT_WORKITEM_OUTPUT_FILES,
89 
90  PDG_EVENT_WORKITEM_PRIORITY,
91 
92  PDG_EVENT_COOK_START,
93 
94  PDG_EVENT_WORKITEM_ADD_STATIC_ANCESTOR,
95  PDG_EVENT_WORKITEM_REMOVE_STATIC_ANCESTOR,
96 
97  PDG_EVENT_NODE_PROGRESS_UPDATE,
98 
99  PDG_EVENT_BATCH_ITEM_INITIALIZED,
100 
101  PDG_EVENT_ALL,
102  PDG_EVENT_LOG,
103 
104  PDG_EVENT_SCHEDULER_ADDED,
105  PDG_EVENT_SCHEDULER_REMOVED,
106  PDG_EVENT_SET_SCHEDULER,
107 
108  PDG_EVENT_SERVICE_MANAGER_ALL,
109  PDG_EVENT_SERVICE_START_BEGIN,
110  PDG_EVENT_SERVICE_START_END,
111 
112  PDG_EVENT_SERVICE_CLIENT_STARTED,
113  PDG_EVENT_SERVICE_CLIENT_CHANGED,
114 );
115 
116 #endif /* __PDG_EVENT_TYPES_H__ */
#define PDG_EVENT_BUILD_ENUM(...)