Ignore:
Timestamp:
07/16/13 23:31:35 (11 years ago)
Author:
psniegowski
Message:

HIGHLIGHTS:

for Joinables running

CHANGELOG:
Add WorkPackageLogic? and classes representing prime experiment state.

Add classes for PrimeExperiment? state.

Extract single netload routine in Simulator.

Working netload with dummy content in PrimeExperiment?.

More development with NetLoadSaveLogic? and PrimeExperiment?.

Improvement around prime.

Improve BufferedDispatcher?.isActive logic.

Add prime-all.xml configuration.

Manual connecting to existing simulators from GUI.

Guard in SimulatorConnector? against expdef mismatch.

Guard against empty target dispatcher in BufferedDispatcher?.

Make BufferedDispatcher? a Dispatcher (and Joinable).

Minor improvements.

Done StackedJoinable?, improve Experiment.

Develop StackedJoinable?.

Add StackedJoinable? utility joinables controller.

Add dependency on apache-commons-lang.

Add ready ListChange? on Simulators.

Improve hints in ListChange?.

Several improvements.

Found bug with dispatching in Experiment.

Minor improvements.

Fix bug with early finishing Server.

Many changes in Dispatching.

Fix bug with connection.

Do not obfuscate log with socket related exceptions.

Add SocketClosedException?.

Add SimulatorConnector?.

Work out conception of experiment composing of logics building blocks.

Rename SinkInterface? to Sink.

Move saving of Accesses into AccessOperations?.

Some improvements to Experiment.

Improve joinables.

Fix issue with joinables closing.

Add direct and managed consoles to popup menu.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • java/main/src/main/java/com/framsticks/core/AbstractTree.java

    r101 r102  
    3434import com.framsticks.util.dispatching.JoinableState;
    3535import com.framsticks.util.dispatching.RunAt;
    36 import com.framsticks.util.dispatching.Thread;
    3736import com.framsticks.util.dispatching.ThrowExceptionHandler;
    3837import com.framsticks.util.lang.Pair;
     
    4241 */
    4342@FramsClassAnnotation
    44 public abstract class AbstractTree extends AbstractJoinable implements Dispatcher<Tree>, Tree, JoinableParent, NeedFileAcceptor {
     43public abstract class AbstractTree extends AbstractJoinable implements Tree, JoinableParent, NeedFileAcceptor {
    4544
    4645        private static final Logger log = LogManager.getLogger(AbstractTree.class);
     
    4948        private ExceptionResultHandler handler = ThrowExceptionHandler.getInstance();
    5049
    51         protected final BufferedDispatcher<Tree> bufferedDispatcher = new BufferedDispatcher<>();
     50        protected final BufferedDispatcher<Tree> bufferedDispatcher = new BufferedDispatcher<>(this);
    5251
    5352        protected final PriorityQueue<Pair<Integer, NeedFileAcceptor>> needFileAcceptors = new PriorityQueue<>(32, new Comparator<Pair<Integer, NeedFileAcceptor>>() {
     
    7776        public void assignRootObject(Object object) {
    7877                if (root == null) {
    79                         throw new FramsticksException().msg("root is has no type specified");
     78                        throw new FramsticksException().msg("root has no type specified");
    8079                }
    8180                if (root.getObject() != null) {
     
    8988        public @Nonnull Node getAssignedRoot() {
    9089                if (root == null) {
    91                         throw new FramsticksException().msg("root has no type specified yet");
     90                        throw new FramsticksException().msg("root has no type specified yet").arg("in", this);
    9291                }
    9392                return root;
     
    173172        @Override
    174173        public Dispatcher<Tree> getDispatcher() {
    175                 return bufferedDispatcher.getTargetDispatcher();
     174                return bufferedDispatcher;
    176175        }
    177176
     
    181180        @Override
    182181        public void setDispatcher(Dispatcher<Tree> dispatcher) {
    183                 if (bufferedDispatcher.getTargetDispatcher() != null) {
    184                         throw new FramsticksException().msg("dispatcher is already set").arg("tree", this).arg("dispatcher", bufferedDispatcher.getTargetDispatcher());
    185                 }
    186182                bufferedDispatcher.setTargetDispatcher(dispatcher);
    187183        }
     
    213209        @Override
    214210        protected void joinableStart() {
    215                 if (bufferedDispatcher.getTargetDispatcher() == null) {
    216                         bufferedDispatcher.setTargetDispatcher(new Thread<Tree>());
    217                 }
    218                 Dispatching.use(bufferedDispatcher.getTargetDispatcher(), this);
     211                bufferedDispatcher.createThreadIfNeeded();
     212                Dispatching.use(bufferedDispatcher, this);
    219213        }
    220214
    221215        @Override
    222216        protected void joinableInterrupt() {
    223                 Dispatching.drop(bufferedDispatcher.getTargetDispatcher(), this);
     217                Dispatching.drop(bufferedDispatcher, this);
    224218        }
    225219
     
    231225        @Override
    232226        protected void joinableJoin() throws InterruptedException {
    233                 Dispatching.join(bufferedDispatcher.getTargetDispatcher());
     227                Dispatching.join(bufferedDispatcher);
    234228        }
    235229
    236230        @Override
    237231        public void childChangedState(Joinable joinable, JoinableState state) {
    238                 if (joinable == bufferedDispatcher.getTargetDispatcher()) {
     232                if (joinable == bufferedDispatcher) {
    239233                        proceedToState(state);
    240234                }
     
    333327                                        }
    334328                                }
    335                                 throw new FramsticksException().msg("failed to find need file acceptor in tree").arg("tree", AbstractTree.this);
     329                                throw new FramsticksException().msg("failed to find need file acceptor in tree").arg("tree", AbstractTree.this).arg("needfile", needFile);
    336330                        }
    337331                });
Note: See TracChangeset for help on using the changeset viewer.