## Uses of Class
org.apache.storm.scheduler.TopologyDetails

- Packages that use TopologyDetails
  Package | Description
  --- | ---
  org.apache.storm.daemon.nimbus |
  org.apache.storm.scheduler |
  org.apache.storm.scheduler.multitenant |
  org.apache.storm.scheduler.resource |
  org.apache.storm.scheduler.resource.strategies.priority |
  org.apache.storm.scheduler.resource.strategies.scheduling |
  org.apache.storm.scheduler.resource.strategies.scheduling.sorter |

- - ### Uses of TopologyDetails in org.apache.storm.daemon.nimbus

    Constructors in org.apache.storm.daemon.nimbus with parameters of type TopologyDetails
    Constructor | Description
    --- | ---
    `TopologyResources​(TopologyDetails td, Assignment assignment)` |
    `TopologyResources​(TopologyDetails td, SchedulerAssignment assignment)` |

  - ### Uses of TopologyDetails in org.apache.storm.scheduler

    Methods in org.apache.storm.scheduler that return TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `TopologyDetails` | Topologies.`getById​(String topologyId)` | Get a topology given an ID.
    `TopologyDetails` | Topologies.`getByName​(String topologyName)` | Get a topology given a topology name.

    Methods in org.apache.storm.scheduler that return types with arguments of type TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<TopologyDetails>` | Topologies.`getTopologies()` |
    `Collection<TopologyDetails>` | Topologies.`getTopologiesOwnedBy​(String user)` | Get all topologies submitted/owned by a given user.
    `Iterator<TopologyDetails>` | Topologies.`iterator()` |
    `List<TopologyDetails>` | Cluster.`needsSchedulingTopologies()` |
    `List<TopologyDetails>` | ISchedulingState.`needsSchedulingTopologies()` | Get all of the topologies that need scheduling.

    Methods in org.apache.storm.scheduler with parameters of type TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | Cluster.`getAssignedNumWorkers​(TopologyDetails topology)` |
    `int` | ISchedulingState.`getAssignedNumWorkers​(TopologyDetails topology)` | Get the number of workers assigned to a topology.
    `Map<String,​List<ExecutorDetails>>` | Cluster.`getNeedsSchedulingComponentToExecutors​(TopologyDetails topology)` |
    `Map<String,​List<ExecutorDetails>>` | ISchedulingState.`getNeedsSchedulingComponentToExecutors​(TopologyDetails topology)` | Get the component name to executor list for executors that need to be scheduled.
    `Map<ExecutorDetails,​String>` | Cluster.`getNeedsSchedulingExecutorToComponents​(TopologyDetails topology)` |
    `Map<ExecutorDetails,​String>` | ISchedulingState.`getNeedsSchedulingExecutorToComponents​(TopologyDetails topology)` | Get the executor to component name map for executors that need to be scheduled.
    `Collection<ExecutorDetails>` | Cluster.`getUnassignedExecutors​(TopologyDetails topology)` |
    `Collection<ExecutorDetails>` | ISchedulingState.`getUnassignedExecutors​(TopologyDetails topology)` | get the unassigned executors of the topology.
    `boolean` | Cluster.`needsScheduling​(TopologyDetails topology)` |
    `boolean` | ISchedulingState.`needsScheduling​(TopologyDetails topology)` | Does the topology need scheduling.
    `boolean` | Cluster.`needsSchedulingRas​(TopologyDetails topology)` |
    `boolean` | ISchedulingState.`needsSchedulingRas​(TopologyDetails topology)` | Like `ISchedulingState.needsScheduling(TopologyDetails)` but does not take into account the number of workers requested.
    `void` | Cluster.`setStatus​(TopologyDetails td, String statusMessage)` | set scheduler status for a topology.
    `boolean` | Cluster.`wouldFit​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td, NormalizedResourceOffer resourcesAvailable, double maxHeap)` |
    `boolean` | ISchedulingState.`wouldFit​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td, NormalizedResourceOffer resourcesAvailable, double maxHeap)` | Would scheduling exec on ws fit? With a heap <= maxHeap total memory added <= memoryAvailable and cpu added <= cpuAvailable.

    Constructors in org.apache.storm.scheduler with parameters of type TopologyDetails
    Constructor | Description
    --- | ---
    `Topologies​(TopologyDetails... details)` | Create a new Topologies from a list of TopologyDetails.

    Constructor parameters in org.apache.storm.scheduler with type arguments of type TopologyDetails
    Constructor | Description
    --- | ---
    `Topologies​(Map<String,​TopologyDetails> topologies)` | Create a new Topologies from a map of id to topology.

  - ### Uses of TopologyDetails in org.apache.storm.scheduler.multitenant

    Methods in org.apache.storm.scheduler.multitenant with parameters of type TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | DefaultPool.`addTopology​(TopologyDetails td)` |
    `void` | FreePool.`addTopology​(TopologyDetails td)` |
    `void` | IsolatedPool.`addTopology​(TopologyDetails td)` |
    `abstract void` | NodePool.`addTopology​(TopologyDetails td)` | Add a topology to the pool.
    `boolean` | DefaultPool.`canAdd​(TopologyDetails td)` |
    `boolean` | FreePool.`canAdd​(TopologyDetails td)` |
    `boolean` | IsolatedPool.`canAdd​(TopologyDetails td)` |
    `abstract boolean` | NodePool.`canAdd​(TopologyDetails td)` | Check if this topology can be added to this pool.

    Constructors in org.apache.storm.scheduler.multitenant with parameters of type TopologyDetails
    Constructor | Description
    --- | ---
    `RoundRobinSlotScheduler​(TopologyDetails td, int slotsToUse, Cluster cluster)` | Create a new scheduler for a given topology.

  - ### Uses of TopologyDetails in org.apache.storm.scheduler.resource

    Methods in org.apache.storm.scheduler.resource that return TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `TopologyDetails` | User.`getNextTopologyToSchedule​(ISchedulingState cluster)` |
    `TopologyDetails` | User.`getRunningTopologyWithLowestPriority​(ISchedulingState cluster)` |

    Methods in org.apache.storm.scheduler.resource that return types with arguments of type TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `TreeSet<TopologyDetails>` | User.`getPendingTopologies​(ISchedulingState cluster)` |
    `TreeSet<TopologyDetails>` | User.`getRunningTopologies​(ISchedulingState cluster)` |

    Methods in org.apache.storm.scheduler.resource with parameters of type TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | RasNode.`assign​(WorkerSlot target, TopologyDetails td, Collection<ExecutorDetails> executors)` | Assigns a worker to a node.
    `void` | RasNode.`assignSingleExecutor​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td)` | Assign a single executor to a slot, even if other things are in the slot.
    `boolean` | RasNode.`couldEverFit​(ExecutorDetails exec, TopologyDetails td)` | Is there any possibility that exec could ever fit on this node.
    `void` | RasNode.`freeSingleExecutor​(ExecutorDetails exec, TopologyDetails topo)` | frees a single executor.
    `void` | User.`markTopoUnsuccess​(TopologyDetails topo)` |
    `void` | User.`markTopoUnsuccess​(TopologyDetails topo, Cluster cluster, String msg)` |
    `boolean` | RasNode.`wouldFit​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td)` | Would scheduling exec in ws fit with the current resource constraints.

  - ### Uses of TopologyDetails in org.apache.storm.scheduler.resource.strategies.priority

    Fields in org.apache.storm.scheduler.resource.strategies.priority with type parameters of type TopologyDetails
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected LinkedList<TopologyDetails>` | DefaultSchedulingPriorityStrategy.SimulatedUser.`tds` |

    Methods in org.apache.storm.scheduler.resource.strategies.priority that return TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `TopologyDetails` | DefaultSchedulingPriorityStrategy.SimulatedUser.`getNextHighest()` |
    `TopologyDetails` | DefaultSchedulingPriorityStrategy.SimulatedUser.`simScheduleNextHighest()` |
    `TopologyDetails` | GenericResourceAwareSchedulingPriorityStrategy.GrasSimulatedUser.`simScheduleNextHighest()` |

    Methods in org.apache.storm.scheduler.resource.strategies.priority that return types with arguments of type TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<TopologyDetails>` | DefaultSchedulingPriorityStrategy.`getOrderedTopologies​(ISchedulingState cluster, Map<String,​User> userMap)` |
    `List<TopologyDetails>` | GenericResourceAwareSchedulingPriorityStrategy.`getOrderedTopologies​(ISchedulingState cluster, Map<String,​User> userMap)` |
    `List<TopologyDetails>` | ISchedulingPriorityStrategy.`getOrderedTopologies​(ISchedulingState schedulingState, Map<String,​User> userMap)` | Prioritize the list of all topologies in the cluster.

    Methods in org.apache.storm.scheduler.resource.strategies.priority with parameters of type TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected double` | DefaultSchedulingPriorityStrategy.SimulatedUser.`getScore​(double availableCpu, double availableMemory, TopologyDetails td)` | Get a score for the simulated user.
    `protected double` | GenericResourceAwareSchedulingPriorityStrategy.GrasSimulatedUser.`getScore​(double availableCpu, double availableMemory, Map<String,​Double> availableGenericResources, TopologyDetails td)` | Get a score for the simulated user.

  - ### Uses of TopologyDetails in org.apache.storm.scheduler.resource.strategies.scheduling

    Fields in org.apache.storm.scheduler.resource.strategies.scheduling declared as TopologyDetails
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected TopologyDetails` | BaseResourceAwareStrategy.`topologyDetails` |

    Methods in org.apache.storm.scheduler.resource.strategies.scheduling with parameters of type TopologyDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | BaseResourceAwareStrategy.`prepareForScheduling​(Cluster cluster, TopologyDetails topologyDetails)` | Initialize instance variables as the first step in `BaseResourceAwareStrategy.schedule(Cluster, TopologyDetails)`.
    `protected void` | ConstraintSolverStrategy.`prepareForScheduling​(Cluster cluster, TopologyDetails topologyDetails)` |
    `SchedulingResult` | BaseResourceAwareStrategy.`schedule​(Cluster cluster, TopologyDetails td)` | Note that this method is not thread-safe.
    `SchedulingResult` | IStrategy.`schedule​(Cluster schedulingState, TopologyDetails td)` | This method is invoked to calculate a scheduling for topology td.
    `static boolean` | ConstraintSolverStrategy.`validateSolution​(Cluster cluster, TopologyDetails topo)` | Determines if a scheduling is valid and all constraints are satisfied (for use in testing).

    Constructors in org.apache.storm.scheduler.resource.strategies.scheduling with parameters of type TopologyDetails
    Constructor | Description
    --- | ---
    `ConstraintSolverConfig​(TopologyDetails topo)` |
    `SchedulingSearcherState​(Map<WorkerSlot,​Map<String,​Integer>> workerCompAssignmentCnts, Map<RasNode,​Map<String,​Integer>> nodeCompAssignmentCnts, int maxStatesSearched, long maxTimeMs, List<ExecutorDetails> execs, LinkedList<ExecutorDetails> unassignedAckers, TopologyDetails td, Map<ExecutorDetails,​String> execToComp)` |

  - ### Uses of TopologyDetails in org.apache.storm.scheduler.resource.strategies.scheduling.sorter

    Fields in org.apache.storm.scheduler.resource.strategies.scheduling.sorter declared as TopologyDetails
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected TopologyDetails` | ExecSorterByConnectionCount.`topologyDetails` |
    `protected TopologyDetails` | ExecSorterByProximity.`topologyDetails` |
    `protected TopologyDetails` | NodeSorter.`topologyDetails` |
    `protected TopologyDetails` | NodeSorterHostProximity.`topologyDetails` |

    Constructors in org.apache.storm.scheduler.resource.strategies.scheduling.sorter with parameters of type TopologyDetails
    Constructor | Description
    --- | ---
    `ExecSorterByConnectionCount​(TopologyDetails topologyDetails)` |
    `ExecSorterByConstraintSeverity​(Cluster cluster, TopologyDetails topologyDetails)` |
    `ExecSorterByProximity​(TopologyDetails topologyDetails)` |
    `NodeSorter​(Cluster cluster, TopologyDetails topologyDetails, BaseResourceAwareStrategy.NodeSortType nodeSortType)` | Initialize for the default implementation node sorting.
    `NodeSorterHostProximity​(Cluster cluster, TopologyDetails topologyDetails)` |
    `NodeSorterHostProximity​(Cluster cluster, TopologyDetails topologyDetails, BaseResourceAwareStrategy.NodeSortType nodeSortType)` | Initialize for the default implementation node sorting.