public void Observe(Action <ObservationType, T> handler) { CancelObservation(); _childEventListener = new ChildEventListener <T>(handler); _dbGroupNode.AddChildEventListener(_childEventListener); }
private void CheckAndLoadDatabaseListener() { if (_databaseChildListener == null) { _databaseChildListener = (CommentService)SimpleIoc.Default.GetInstance <ICommentService>(); } }
public void CancelObservation() { if (_childEventListener != null) { _dbGroupNode.RemoveEventListener(_childEventListener); _childEventListener = null; } }
void Start() { parentListener = FindParentListenter(transform); if (parentListener == null) { Debug.LogError(name + ": cant find parent listener"); } }
public void ObserveAfterId(string afterId, Action <ObservationType, T> handler) { CancelObservation(); var query = _dbGroupNode.OrderByKey(); // If afterId provided, start observing from this id if (!string.IsNullOrEmpty(afterId)) { query = query.StartAt(afterId); } _childEventListener = new ChildEventListener <T>(handler, afterId); query.AddChildEventListener(_childEventListener); }
/// <summary> /// Equivalent to AddChildEventListener, except returns an IObservable for use with reactive extensions. /// </summary> /// <param name="dbQuery">The database query reference.</param> /// <param name="listener">A reference to the listener so you can remove it, later.</param> /// <returns>Returns a stream of results containing a snapshot and event type.</returns> public static IObservable <ChildEventResult> AddChildEventListenerRx(this Query dbQuery, out IChildEventListener listener) { var eventSubject = new Subject <ChildEventResult>(); listener = dbQuery.AddChildEventListener(new ChildEventListener(eventSubject)); return(eventSubject); }