Package org.agilewiki.jactor.counterTest

Source Code of org.agilewiki.jactor.counterTest.Driver

package org.agilewiki.jactor.counterTest;

import org.agilewiki.jactor.*;
import org.agilewiki.jactor.lpc.JLPCActor;
import org.agilewiki.jactor.JAIterator;
import org.agilewiki.jactor.Mailbox;
import org.agilewiki.jactor.RP;
import org.agilewiki.jactor.simpleMachine.ObjectFunc;
import org.agilewiki.jactor.simpleMachine.SimpleMachine;
import org.agilewiki.jactor.simpleMachine._Operation;

/**
* Test code.
*/
final public class Driver extends JLPCActor implements SimpleRequestReceiver {
    SMBuilder smb = new SMBuilder();

    public void initialize(Mailbox mailbox, final CounterActor counterActor, final long runs)
            throws Exception {
        super.initialize(mailbox);
        smb.add(new _Operation() {
            @Override
            public void call(final SimpleMachine sm, final RP rp1) throws Exception {
                JAIterator it = new JAIterator() {
                    long i = 0;

                    @Override
                    protected void process(RP rp1) throws Exception {
                        if (i == runs) rp1.processResponse(this);
                        else {
                            i += 1;
                            AddCount addCount = new AddCount();
                            addCount.number = 100L;
                            addCount.send(Driver.this, counterActor, rp1);
                        }
                    }
                };
                it.iterate(new RP() {
                    @Override
                    public void processResponse(Object response) throws Exception {
                        rp1.processResponse(null);
                    }
                });
            }
        });
        smb._send(counterActor, new GetAndReset(), "count");
        smb._return(new ObjectFunc() {
            @Override
            public Object get(SimpleMachine sm) {
                return sm.get("count");
            }
        });
    }

    @Override
    public void processRequest(SimpleRequest request,
                               final RP rp)
            throws Exception {
        smb.call(rp);
    }
}
TOP

Related Classes of org.agilewiki.jactor.counterTest.Driver

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.