Class DefaultPool


  • public class DefaultPool
    extends NodePool
    A pool of machines that anyone can use, but topologies are not isolated.
    • Constructor Detail

      • DefaultPool

        public DefaultPool()
    • Method Detail

      • addTopology

        public void addTopology​(TopologyDetails td)
        Description copied from class: NodePool
        Add a topology to the pool.
        Specified by:
        addTopology in class NodePool
        Parameters:
        td - the topology to add
      • canAdd

        public boolean canAdd​(TopologyDetails td)
        Description copied from class: NodePool
        Check if this topology can be added to this pool.
        Specified by:
        canAdd in class NodePool
        Parameters:
        td - the topology
        Returns:
        true if it can else false
      • takeNodes

        public Collection<Node> takeNodes​(int nodesNeeded)
        Description copied from class: NodePool
        Take up to nodesNeeded from this pool.
        Specified by:
        takeNodes in class NodePool
        Parameters:
        nodesNeeded - the number of nodes that are needed.
        Returns:
        a Collection of nodes with the removed nodes in it. This may be empty, but should not be null.
      • nodesAvailable

        public int nodesAvailable()
        Description copied from class: NodePool
        Get the number of available nodes.
        Specified by:
        nodesAvailable in class NodePool
        Returns:
        the number of nodes that are available to be taken
      • slotsAvailable

        public int slotsAvailable()
        Description copied from class: NodePool
        Get number of available slots.
        Specified by:
        slotsAvailable in class NodePool
        Returns:
        the number of slots that are available to be taken
      • getNodeAndSlotCountIfSlotsWereTaken

        public NodePool.NodeAndSlotCounts getNodeAndSlotCountIfSlotsWereTaken​(int slotsNeeded)
        Description copied from class: NodePool
        Get the number of nodes and slots this would provide to get the slots needed.
        Specified by:
        getNodeAndSlotCountIfSlotsWereTaken in class NodePool
        Parameters:
        slotsNeeded - the number of slots needed
        Returns:
        the number of nodes and slots that would be returned.
      • takeNodesBySlots

        public Collection<Node> takeNodesBySlots​(int slotsNeeded)
        Description copied from class: NodePool
        Take nodes from this pool that can fulfill possibly up to the slotsNeeded.
        Specified by:
        takeNodesBySlots in class NodePool
        Parameters:
        slotsNeeded - the number of slots that are needed.
        Returns:
        a Collection of nodes with the removed nodes in it. This may be empty, but should not be null.
      • scheduleAsNeeded

        public void scheduleAsNeeded​(NodePool... lesserPools)
        Description copied from class: NodePool
        Reschedule any topologies as needed.
        Specified by:
        scheduleAsNeeded in class NodePool
        Parameters:
        lesserPools - pools that may be used to steal nodes from.