- Timestamp:
- 07/14/13 23:20:04 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/core/LocalTree.java
r100 r101 15 15 import com.framsticks.params.types.ProcedureParam; 16 16 import com.framsticks.util.FramsticksException; 17 import com.framsticks.util.dispatching.Dispatching; 17 18 import com.framsticks.util.dispatching.Future; 19 import com.framsticks.util.dispatching.Joinable; 20 import com.framsticks.util.dispatching.JoinableState; 18 21 19 22 import static com.framsticks.core.TreeOperations.*; … … 23 26 private static final Logger log = LogManager.getLogger(LocalTree.class); 24 27 25 protected Object rootObject;28 protected Joinable joinableRootObject; 26 29 27 30 /** … … 42 45 assignRootParam(access.buildParam(new ParamBuilder()).id(getName()).finish(CompositeParam.class)); 43 46 assignRootObject(object); 47 48 if (object instanceof Joinable) { 49 joinableRootObject = (Joinable) object; 50 } 44 51 } 45 52 … … 69 76 // @Override 70 77 // public void get(Path path, ValueParam param, Future<Object> future) { 71 // 72 // 73 // 78 // assert isActive(); 79 // path = resolveTopSync(path); 80 // future.pass(bindAccess(path).get(param, Object.class)); 74 81 // } 75 82 … … 137 144 } 138 145 } 146 147 @Override 148 protected void joinableStart() { 149 super.joinableStart(); 150 if (joinableRootObject != null) { 151 Dispatching.use(joinableRootObject, this); 152 } 153 } 154 155 @Override 156 protected void joinableInterrupt() { 157 if (joinableRootObject != null) { 158 Dispatching.drop(joinableRootObject, this); 159 } 160 super.joinableInterrupt(); 161 } 162 163 @Override 164 protected void joinableFinish() { 165 super.joinableFinish(); 166 } 167 168 @Override 169 protected void joinableJoin() throws InterruptedException { 170 if (joinableRootObject != null) { 171 Dispatching.join(joinableRootObject); 172 } 173 super.joinableJoin(); 174 } 175 176 @Override 177 public void childChangedState(Joinable joinable, JoinableState state) { 178 super.childChangedState(joinable, state); 179 if (joinable == joinableRootObject) { 180 proceedToState(state); 181 } 182 } 139 183 }
Note: See TracChangeset
for help on using the changeset viewer.