package com.serliunx.statemanagement.machine;
import com.serliunx.statemanagement.machine.handler.StateHandlerWrapper;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
/**
* 并发型状态机的默认实现, 内置的状态序列切换使用CAS实现.
*
* @author SerLiunx
* @version 1.0.0
* @since 2025/2/6
*/
public class DefaultConcurrentStateMachine extends AbstractStateMachine implements ConcurrentStateMachine {
/**
* 当前状态
*/
private final AtomicInteger index = new AtomicInteger(0);
DefaultConcurrentStateMachine(List stateList,
Map>> entryHandlers,
Map>> leaveHandlers,
Map>> exchangeHandlers,
Map