Public Member Functions | |
| ComponentInfoTopologicalSortManager (HandleDataStore components, HandleDataStore containers, ReaderPreferenceReadWriteLock activationPendingRWLock, Set pendingContainerShutdown, ThreadPoolExecutor threadPool, Logger logger) | |
| void | run () |
| void | requestTopologicalSort () |
| synchronized void | notifyTopologyChange (int containerHandleToNotify) |
| ComponentInfo[] | getComponentShutdownOrder (ContainerInfo containerInfo) |
| synchronized void | destroy () |
Manages TS.
| com.cosylab.acs.maci.manager.ComponentInfoTopologicalSortManager.ComponentInfoTopologicalSortManager | ( | HandleDataStore | components, | |
| HandleDataStore | containers, | |||
| ReaderPreferenceReadWriteLock | activationPendingRWLock, | |||
| Set | pendingContainerShutdown, | |||
| ThreadPoolExecutor | threadPool, | |||
| Logger | logger | |||
| ) |
| components | ||
| containers |
References com.cosylab.acs.maci.manager.HandleDataStore.get(), and com.cosylab.acs.maci.manager.HandleDataStore.next().
| synchronized void com.cosylab.acs.maci.manager.ComponentInfoTopologicalSortManager.destroy | ( | ) |
Destroy (terminate thread).
| ComponentInfo [] com.cosylab.acs.maci.manager.ComponentInfoTopologicalSortManager.getComponentShutdownOrder | ( | ContainerInfo | containerInfo | ) |
Get component shutdown order for container.
| containerInfo | valid container's info, if null complete TS is returned. |
References com.cosylab.acs.maci.ComponentInfo.getContainerName(), and com.cosylab.acs.maci.ContainerInfo.getName().
| synchronized void com.cosylab.acs.maci.manager.ComponentInfoTopologicalSortManager.notifyTopologyChange | ( | int | containerHandleToNotify | ) |
Notify about (possible) topology change and initiates sorting.
| containerHandleToNotify | container handle to notify. |
| void com.cosylab.acs.maci.manager.ComponentInfoTopologicalSortManager.requestTopologicalSort | ( | ) |
Request topological sort.
References com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.writeLock().
| void com.cosylab.acs.maci.manager.ComponentInfoTopologicalSortManager.run | ( | ) |
(Sync is clean since activationPendingRWLock is acquired and all notify request is issued only from its reader lock).
References com.cosylab.acs.maci.IntArray.add(), com.cosylab.acs.maci.manager.HandleDataStore.get(), com.cosylab.acs.maci.ComponentInfo.getContainerName(), com.cosylab.acs.maci.ContainerInfo.getName(), com.cosylab.acs.maci.manager.HandleDataStore.isAllocated(), com.cosylab.acs.maci.IntArray.size(), com.cosylab.acs.maci.IntArray.toArray(), and com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.writeLock().
1.7.0