summaryrefslogtreecommitdiff
path: root/dsa/FireBase/Streaming/FirebaseEvent.cs
diff options
context:
space:
mode:
Diffstat (limited to 'dsa/FireBase/Streaming/FirebaseEvent.cs')
-rw-r--r--dsa/FireBase/Streaming/FirebaseEvent.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/dsa/FireBase/Streaming/FirebaseEvent.cs b/dsa/FireBase/Streaming/FirebaseEvent.cs
new file mode 100644
index 0000000..1761a72
--- /dev/null
+++ b/dsa/FireBase/Streaming/FirebaseEvent.cs
@@ -0,0 +1,37 @@
+namespace Firebase.Database.Streaming
+{
+ /// <summary>
+ /// Firebase event which hold <see cref="EventType" /> and the object affected by the event.
+ /// </summary>
+ /// <typeparam name="T"> Type of object affected by the event. </typeparam>
+ public class FirebaseEvent<T> : FirebaseObject<T>
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="FirebaseEvent{T}" /> class.
+ /// </summary>
+ /// <param name="key"> The key of the object. </param>
+ /// <param name="obj"> The object. </param>
+ /// <param name="eventType"> The event type. </param>
+ public FirebaseEvent(string key, T obj, FirebaseEventType eventType, FirebaseEventSource eventSource)
+ : base(key, obj)
+ {
+ EventType = eventType;
+ EventSource = eventSource;
+ }
+
+ /// <summary>
+ /// Gets the source of the event.
+ /// </summary>
+ public FirebaseEventSource EventSource { get; }
+
+ /// <summary>
+ /// Gets the event type.
+ /// </summary>
+ public FirebaseEventType EventType { get; }
+
+ public static FirebaseEvent<T> Empty(FirebaseEventSource source)
+ {
+ return new FirebaseEvent<T>(string.Empty, default(T), FirebaseEventType.InsertOrUpdate, source);
+ }
+ }
+} \ No newline at end of file