Class ConcurrentNodeMemories

java.lang.Object
org.drools.core.common.ConcurrentNodeMemories
All Implemented Interfaces:
NodeMemories

public class ConcurrentNodeMemories extends Object implements NodeMemories
A concurrent implementation for the node memories interface
  • Constructor Details

    • ConcurrentNodeMemories

      public ConcurrentNodeMemories(InternalRuleBase ruleBase)
  • Method Details

    • clearNodeMemory

      public void clearNodeMemory(MemoryFactory node)
      Specified by:
      clearNodeMemory in interface NodeMemories
    • clear

      public void clear()
      Specified by:
      clear in interface NodeMemories
    • resetAllMemories

      public void resetAllMemories(StatefulKnowledgeSession session)
      Specified by:
      resetAllMemories in interface NodeMemories
    • getNodeMemory

      public Memory getNodeMemory(MemoryFactory node, ReteEvaluator reteEvaluator)
      The implementation tries to delay locking as much as possible, by running some potentially unsafe operations out of the critical session. In case it fails the checks, it will move into the critical sessions and re-check everything before effectively doing any change on data structures.
      Specified by:
      getNodeMemory in interface NodeMemories
    • peekNodeMemory

      public Memory peekNodeMemory(int memoryId)
      Description copied from interface: NodeMemories
      Peeks at the content of the node memory for the given node ID. This method has no side effects, so if the given memory slot for the given node ID is null, it will return null.
      Specified by:
      peekNodeMemory in interface NodeMemories
      Returns:
    • length

      public int length()
      Description copied from interface: NodeMemories
      Returns the number of positions in this memory
      Specified by:
      length in interface NodeMemories
      Returns: