11using System ;
22using System . Globalization ;
3- using Quobject . EngineIoClientDotNet . ComponentEmitter ;
3+ using System . Threading . Tasks ;
44
55namespace ElectronNET . API
66{
@@ -10,20 +10,19 @@ namespace ElectronNET.API
1010 internal class Events
1111 {
1212 private static Events _events ;
13- private static object _syncRoot = new object ( ) ;
14- private TextInfo _ti = new CultureInfo ( "en-US" , false ) . TextInfo ;
13+ private static readonly object SyncRoot = new ( ) ;
14+ private readonly TextInfo _textInfo = new CultureInfo ( "en-US" , false ) . TextInfo ;
15+
1516 private Events ( )
16- {
17-
18- }
17+ { }
1918
2019 public static Events Instance
2120 {
2221 get
2322 {
2423 if ( _events == null )
2524 {
26- lock ( _syncRoot )
25+ lock ( SyncRoot )
2726 {
2827 if ( _events == null )
2928 {
@@ -41,32 +40,24 @@ public static Events Instance
4140 /// </summary>
4241 /// <param name="moduleName">The name of the module, e.g. app, dock, etc...</param>
4342 /// <param name="eventName">The name of the event</param>
44- /// <param name="fn ">The event handler</param>
45- public void On ( string moduleName , string eventName , Action fn )
46- => On ( moduleName , eventName , new ListenerImpl ( fn ) ) ;
43+ /// <param name="action ">The event handler</param>
44+ public void On ( string moduleName , string eventName , Action action )
45+ => On ( moduleName , eventName , action ) ;
4746
48- /// <summary>
49- /// Subscribe to an unmapped electron event.
50- /// </summary>
51- /// <param name="moduleName">The name of the module, e.g. app, dock, etc...</param>
52- /// <param name="eventName">The name of the event</param>
53- /// <param name="fn">The event handler</param>
54- public void On ( string moduleName , string eventName , Action < object > fn )
55- => On ( moduleName , eventName , new ListenerImpl ( fn ) ) ;
5647
5748 /// <summary>
5849 /// Subscribe to an unmapped electron event.
5950 /// </summary>
6051 /// <param name="moduleName">The name of the module, e.g. app, dock, etc...</param>
6152 /// <param name="eventName">The name of the event</param>
62- /// <param name="fn ">The event handler</param>
63- private void On ( string moduleName , string eventName , IListener fn )
53+ /// <param name="action ">The event handler</param>
54+ public async Task On < T > ( string moduleName , string eventName , Action < T > action )
6455 {
65- var listener = $ "{ moduleName } { _ti . ToTitleCase ( eventName ) } Completed";
56+ var listener = $ "{ moduleName } { _textInfo . ToTitleCase ( eventName ) } Completed";
6657 var subscriber = $ "register-{ moduleName } -on-event";
67-
68- BridgeConnector . Socket . On ( listener , fn ) ;
69- BridgeConnector . Socket . Emit ( subscriber , eventName , listener ) ;
58+
59+ BridgeConnector . Socket . On ( listener , action ) ;
60+ await BridgeConnector . Socket . Emit ( subscriber , eventName , listener ) ;
7061 }
7162
7263 /// <summary>
@@ -75,30 +66,22 @@ private void On(string moduleName, string eventName, IListener fn)
7566 /// <param name="moduleName">The name of the module, e.g. app, dock, etc...</param>
7667 /// <param name="eventName">The name of the event</param>
7768 /// <param name="fn">The event handler</param>
78- public void Once ( string moduleName , string eventName , Action fn )
79- => Once ( moduleName , eventName , new ListenerImpl ( fn ) ) ;
69+ public void Once ( string moduleName , string eventName , Action action )
70+ => Once ( moduleName , eventName , action ) ;
8071
81- /// <summary>
82- /// Subscribe to an unmapped electron event.
83- /// </summary>
84- /// <param name="moduleName">The name of the module, e.g. app, dock, etc...</param>
85- /// <param name="eventName">The name of the event</param>
86- /// <param name="fn">The event handler</param>
87- public void Once ( string moduleName , string eventName , Action < object > fn )
88- => Once ( moduleName , eventName , new ListenerImpl ( fn ) ) ;
8972
9073 /// <summary>
9174 /// Subscribe to an unmapped electron event.
9275 /// </summary>
9376 /// <param name="moduleName">The name of the module, e.g. app, dock, etc...</param>
9477 /// <param name="eventName">The name of the event</param>
95- /// <param name="fn ">The event handler</param>
96- private void Once ( string moduleName , string eventName , IListener fn )
78+ /// <param name="action ">The event handler</param>
79+ public async Task Once < T > ( string moduleName , string eventName , Action < T > action )
9780 {
98- var listener = $ "{ moduleName } { _ti . ToTitleCase ( eventName ) } Completed";
81+ var listener = $ "{ moduleName } { _textInfo . ToTitleCase ( eventName ) } Completed";
9982 var subscriber = $ "register-{ moduleName } -once-event";
100- BridgeConnector . Socket . Once ( listener , fn ) ;
101- BridgeConnector . Socket . Emit ( subscriber , eventName , listener ) ;
83+ BridgeConnector . Socket . Once ( listener , action ) ;
84+ await BridgeConnector . Socket . Emit ( subscriber , eventName , listener ) ;
10285 }
10386
10487 }
0 commit comments