Class ConcurrentNodeMemories

  • All Implemented Interfaces:
    NodeMemories

    public class ConcurrentNodeMemories
    extends java.lang.Object
    implements NodeMemories
    A concurrent implementation for the node memories interface
    • Constructor Detail

      • ConcurrentNodeMemories

        public ConcurrentNodeMemories​(InternalRuleBase ruleBase)
    • Method Detail

      • resetAllMemories

        public void resetAllMemories​(org.kie.internal.runtime.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: