1+ using System ;
2+ using System . Collections . Generic ;
3+
4+ namespace WinFormsApp1 . Events
5+ {
6+ /// <summary>
7+ /// Event for requesting data synchronization between managers
8+ /// </summary>
9+ public class DataSyncRequestEvent : GameEvent
10+ {
11+ public string SourceManager { get ; set ; }
12+ public string TargetManager { get ; set ; }
13+ public string DataType { get ; set ; }
14+ public object Data { get ; set ; }
15+ public string SyncId { get ; set ; }
16+
17+ public override int Priority => 12 ;
18+
19+ public DataSyncRequestEvent ( string sourceManager , string targetManager , string dataType , object data , string syncId = null )
20+ {
21+ SourceManager = sourceManager ;
22+ TargetManager = targetManager ;
23+ DataType = dataType ;
24+ Data = data ;
25+ SyncId = syncId ?? Guid . NewGuid ( ) . ToString ( ) ;
26+ Source = sourceManager ;
27+ }
28+ }
29+
30+ /// <summary>
31+ /// Event for responding to data synchronization requests
32+ /// </summary>
33+ public class DataSyncResponseEvent : GameEvent
34+ {
35+ public string SyncId { get ; set ; }
36+ public bool Success { get ; set ; }
37+ public string ErrorMessage { get ; set ; }
38+ public object ResponseData { get ; set ; }
39+
40+ public DataSyncResponseEvent ( string syncId , bool success , string errorMessage = "" , object responseData = null )
41+ {
42+ SyncId = syncId ;
43+ Success = success ;
44+ ErrorMessage = errorMessage ;
45+ ResponseData = responseData ;
46+ Source = "SystemManager" ;
47+ }
48+ }
49+
50+ /// <summary>
51+ /// Event for manager state changes
52+ /// </summary>
53+ public class ManagerStateChangedEvent : GameEvent
54+ {
55+ public string ManagerName { get ; set ; }
56+ public ManagerState OldState { get ; set ; }
57+ public ManagerState NewState { get ; set ; }
58+ public string Reason { get ; set ; }
59+ public Dictionary < string , object > StateData { get ; set ; }
60+
61+ public override int Priority => 11 ;
62+
63+ public ManagerStateChangedEvent ( string managerName , ManagerState oldState , ManagerState newState , string reason = "" , Dictionary < string , object > stateData = null )
64+ {
65+ ManagerName = managerName ;
66+ OldState = oldState ;
67+ NewState = newState ;
68+ Reason = reason ;
69+ StateData = stateData ?? new Dictionary < string , object > ( ) ;
70+ Source = managerName ;
71+ }
72+ }
73+
74+ /// <summary>
75+ /// Manager states
76+ /// </summary>
77+ public enum ManagerState
78+ {
79+ Uninitialized ,
80+ Initializing ,
81+ Ready ,
82+ Busy ,
83+ Error ,
84+ Shutting_Down ,
85+ Shutdown
86+ }
87+
88+ /// <summary>
89+ /// Event for system-wide operations
90+ /// </summary>
91+ public class SystemOperationEvent : GameEvent
92+ {
93+ public SystemOperation Operation { get ; set ; }
94+ public Dictionary < string , object > Parameters { get ; set ; }
95+ public string OperationId { get ; set ; }
96+ public List < string > TargetManagers { get ; set ; }
97+
98+ public override int Priority => 13 ;
99+
100+ public SystemOperationEvent ( SystemOperation operation , Dictionary < string , object > parameters = null , List < string > targetManagers = null , string operationId = null )
101+ {
102+ Operation = operation ;
103+ Parameters = parameters ?? new Dictionary < string , object > ( ) ;
104+ TargetManagers = targetManagers ?? new List < string > ( ) ;
105+ OperationId = operationId ?? Guid . NewGuid ( ) . ToString ( ) ;
106+ Source = "SystemManager" ;
107+ }
108+ }
109+
110+ /// <summary>
111+ /// System operations
112+ /// </summary>
113+ public enum SystemOperation
114+ {
115+ Initialize ,
116+ Shutdown ,
117+ Reset ,
118+ Backup ,
119+ Restore ,
120+ Validate ,
121+ Synchronize ,
122+ Maintenance ,
123+ Performance_Check ,
124+ Memory_Cleanup
125+ }
126+
127+ /// <summary>
128+ /// Event for system operation responses
129+ /// </summary>
130+ public class SystemOperationResponseEvent : GameEvent
131+ {
132+ public string OperationId { get ; set ; }
133+ public string RespondingManager { get ; set ; }
134+ public bool Success { get ; set ; }
135+ public string Message { get ; set ; }
136+ public Dictionary < string , object > Results { get ; set ; }
137+ public TimeSpan ExecutionTime { get ; set ; }
138+
139+ public SystemOperationResponseEvent ( string operationId , string respondingManager , bool success , string message = "" , Dictionary < string , object > results = null , TimeSpan executionTime = default )
140+ {
141+ OperationId = operationId ;
142+ RespondingManager = respondingManager ;
143+ Success = success ;
144+ Message = message ;
145+ Results = results ?? new Dictionary < string , object > ( ) ;
146+ ExecutionTime = executionTime ;
147+ Source = respondingManager ;
148+ }
149+ }
150+
151+ /// <summary>
152+ /// Event for performance metrics
153+ /// </summary>
154+ public class PerformanceMetricEvent : GameEvent
155+ {
156+ public string MetricName { get ; set ; }
157+ public double Value { get ; set ; }
158+ public string Unit { get ; set ; }
159+ public DateTime Timestamp { get ; set ; }
160+ public string Category { get ; set ; }
161+ public Dictionary < string , object > Metadata { get ; set ; }
162+
163+ public PerformanceMetricEvent ( string metricName , double value , string unit = "" , string category = "General" , Dictionary < string , object > metadata = null )
164+ {
165+ MetricName = metricName ;
166+ Value = value ;
167+ Unit = unit ;
168+ Category = category ;
169+ Timestamp = DateTime . UtcNow ;
170+ Metadata = metadata ?? new Dictionary < string , object > ( ) ;
171+ Source = "PerformanceMonitor" ;
172+ }
173+ }
174+
175+ /// <summary>
176+ /// Event for error reporting across the system
177+ /// </summary>
178+ public class SystemErrorEvent : GameEvent
179+ {
180+ public string ErrorCode { get ; set ; }
181+ public string ErrorMessage { get ; set ; }
182+ public Exception Exception { get ; set ; }
183+ public ErrorSeverity Severity { get ; set ; }
184+ public string Component { get ; set ; }
185+ public Dictionary < string , object > Context { get ; set ; }
186+ public bool IsRecoverable { get ; set ; }
187+
188+ public override int Priority => 14 ; // High priority for errors
189+
190+ public SystemErrorEvent ( string errorCode , string errorMessage , Exception exception = null , ErrorSeverity severity = ErrorSeverity . Error , string component = "" , Dictionary < string , object > context = null , bool isRecoverable = true )
191+ {
192+ ErrorCode = errorCode ;
193+ ErrorMessage = errorMessage ;
194+ Exception = exception ;
195+ Severity = severity ;
196+ Component = component ;
197+ Context = context ?? new Dictionary < string , object > ( ) ;
198+ IsRecoverable = isRecoverable ;
199+ Source = component ;
200+ }
201+ }
202+
203+ /// <summary>
204+ /// Error severity levels
205+ /// </summary>
206+ public enum ErrorSeverity
207+ {
208+ Info ,
209+ Warning ,
210+ Error ,
211+ Critical ,
212+ Fatal
213+ }
214+
215+ /// <summary>
216+ /// Event for resource management
217+ /// </summary>
218+ public class ResourceEvent : GameEvent
219+ {
220+ public ResourceOperation Operation { get ; set ; }
221+ public string ResourceType { get ; set ; }
222+ public string ResourceId { get ; set ; }
223+ public object ResourceData { get ; set ; }
224+ public long ResourceSize { get ; set ; }
225+ public string RequestingManager { get ; set ; }
226+
227+ public ResourceEvent ( ResourceOperation operation , string resourceType , string resourceId , object resourceData = null , long resourceSize = 0 , string requestingManager = "" )
228+ {
229+ Operation = operation ;
230+ ResourceType = resourceType ;
231+ ResourceId = resourceId ;
232+ ResourceData = resourceData ;
233+ ResourceSize = resourceSize ;
234+ RequestingManager = requestingManager ;
235+ Source = "ResourceManager" ;
236+ }
237+ }
238+
239+ /// <summary>
240+ /// Resource operations
241+ /// </summary>
242+ public enum ResourceOperation
243+ {
244+ Allocate ,
245+ Deallocate ,
246+ Load ,
247+ Unload ,
248+ Cache ,
249+ Evict ,
250+ Validate ,
251+ Cleanup
252+ }
253+
254+ /// <summary>
255+ /// Event for configuration changes
256+ /// </summary>
257+ public class ConfigurationChangedEvent : GameEvent
258+ {
259+ public string ConfigurationKey { get ; set ; }
260+ public object OldValue { get ; set ; }
261+ public object NewValue { get ; set ; }
262+ public string Category { get ; set ; }
263+ public bool RequiresRestart { get ; set ; }
264+ public List < string > AffectedManagers { get ; set ; }
265+
266+ public override int Priority => 10 ;
267+
268+ public ConfigurationChangedEvent ( string configurationKey , object oldValue , object newValue , string category = "General" , bool requiresRestart = false , List < string > affectedManagers = null )
269+ {
270+ ConfigurationKey = configurationKey ;
271+ OldValue = oldValue ;
272+ NewValue = newValue ;
273+ Category = category ;
274+ RequiresRestart = requiresRestart ;
275+ AffectedManagers = affectedManagers ?? new List < string > ( ) ;
276+ Source = "ConfigurationManager" ;
277+ }
278+ }
279+
280+ /// <summary>
281+ /// Event for audit logging
282+ /// </summary>
283+ public class AuditEvent : GameEvent
284+ {
285+ public string Action { get ; set ; }
286+ public string Actor { get ; set ; }
287+ public string Target { get ; set ; }
288+ public DateTime Timestamp { get ; set ; }
289+ public Dictionary < string , object > Details { get ; set ; }
290+ public AuditLevel Level { get ; set ; }
291+
292+ public AuditEvent ( string action , string actor , string target , AuditLevel level = AuditLevel . Info , Dictionary < string , object > details = null )
293+ {
294+ Action = action ;
295+ Actor = actor ;
296+ Target = target ;
297+ Level = level ;
298+ Timestamp = DateTime . UtcNow ;
299+ Details = details ?? new Dictionary < string , object > ( ) ;
300+ Source = "AuditManager" ;
301+ }
302+ }
303+
304+ /// <summary>
305+ /// Audit levels
306+ /// </summary>
307+ public enum AuditLevel
308+ {
309+ Debug ,
310+ Info ,
311+ Warning ,
312+ Security ,
313+ Critical
314+ }
315+ }
0 commit comments