EMMA Coverage Report (generated Tue Oct 27 11:32:50 PDT 2009)
[all classes][net.spy.memcached.ops]

COVERAGE SUMMARY FOR SOURCE FILE [MultiOperationCallback.java]

nameclass, %method, %block, %line, %
MultiOperationCallback.java100% (1/1)100% (3/3)100% (36/36)100% (12/12)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MultiOperationCallback100% (1/1)100% (3/3)100% (36/36)100% (12/12)
MultiOperationCallback (OperationCallback, int): void 100% (1/1)100% (15/15)100% (6/6)
complete (): void 100% (1/1)100% (17/17)100% (4/4)
receivedStatus (OperationStatus): void 100% (1/1)100% (4/4)100% (2/2)

1package net.spy.memcached.ops;
2 
3/**
4 * An operation callback that will capture receivedStatus and complete
5 * invocations and dispatch to a single callback.
6 *
7 * <p>
8 *  This is useful for the cases where a single request gets split into
9 *  multiple requests and the callback needs to not know the difference.
10 * </p>
11 */
12public abstract class MultiOperationCallback implements OperationCallback {
13 
14        private OperationStatus mostRecentStatus = null;
15        private int remaining=0;
16        protected final OperationCallback originalCallback;
17 
18        /**
19         * Get a MultiOperationCallback over the given callback for the specified
20         * number of replicates.
21         *
22         * @param original the original callback
23         * @param todo how many complete() calls we expect before dispatching.
24         */
25        public MultiOperationCallback(OperationCallback original, int todo) {
26                originalCallback = original;
27                remaining = todo;
28        }
29 
30        public void complete() {
31                if(--remaining == 0) {
32                        originalCallback.receivedStatus(mostRecentStatus);
33                        originalCallback.complete();
34                }
35        }
36 
37        public void receivedStatus(OperationStatus status) {
38                mostRecentStatus = status;
39        }
40 
41}

[all classes][net.spy.memcached.ops]
EMMA 2.0.5312 (C) Vladimir Roubtsov