Ejemplo n.º 1
0
 /// <summary>
 /// Subscribes to a stream with a callback parameterized by worker id, epoch, and records.
 /// </summary>
 /// <typeparam name="R">record type</typeparam>
 /// <param name="stream">input stream</param>
 /// <param name="action">callback on worker id, epoch id, and records</param>
 /// <returns>subscription for synchronization</returns>
 public static Subscription Subscribe <R>(this Dataflow.Stream <R, Epoch> stream, Action <int, int, IEnumerable <R> > action)
 {
     return(new Subscription <R>(stream, stream.ForStage.Placement, stream.Context, action));
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Subscribes to a stream with a per-epoch callback applied at each worker.
 /// </summary>
 /// <typeparam name="R">record type</typeparam>
 /// <param name="stream">input stream</param>
 /// <param name="action">callback on worker id and records</param>
 /// <returns>subscription for synchronization</returns>
 public static Subscription Subscribe <R>(this Dataflow.Stream <R, Epoch> stream, Action <int, IEnumerable <R> > action)
 {
     return(stream.Subscribe((j, t, l) => action(j, l)));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Subscribes to a stream with no callback.
 /// </summary>
 /// <typeparam name="R">record type</typeparam>
 /// <param name="stream">input stream</param>
 /// <returns>subscription for synchronization</returns>
 public static Subscription Subscribe <R>(this Dataflow.Stream <R, Epoch> stream)
 {
     return(stream.Subscribe(x => { }));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Subscribes to a stream with a per-epoch callback applied by one worker.
 /// </summary>
 /// <typeparam name="R">record type</typeparam>
 /// <param name="stream">input stream</param>
 /// <param name="action">callback</param>
 /// <returns>subscription for synchronization</returns>
 public static Subscription Subscribe <R>(this Dataflow.Stream <R, Epoch> stream, Action <IEnumerable <R> > action)
 {
     return(new Subscription <R>(stream, new SingleVertexPlacement(0, 0), stream.Context, (j, t, l) => action(l)));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Subscribes to a stream with callbacks for record receipt, epoch completion notification, and stream completion notification.
 /// </summary>
 /// <typeparam name="R">record type</typeparam>
 /// <param name="stream">input stream</param>
 /// <param name="onRecv">receipt callback</param>
 /// <param name="onNotify">notification callback</param>
 /// <param name="onComplete">completion callback</param>
 /// <returns>subscription for synchronization</returns>
 public static Subscription Subscribe <R>(this Dataflow.Stream <R, Epoch> stream, Action <Message <Pair <R, Epoch> >, int> onRecv, Action <Epoch, int> onNotify, Action <int> onComplete)
 {
     return(new Subscription <R>(stream, stream.ForStage.Placement, stream.Context, onRecv, onNotify, onComplete));
 }