#pragma once
#include "CStepBase.h"


//��У׼̨��ȡ��
class  __declspec(dllexport) CStepTransferPick :
    public CStepBase
{

	struct Input_Data
	{
		UINT m_nCurrBondDieIndex;
		UINT m_nCurrBondHeadId;

		template <class Archive>
		void serialize(Archive& ar)
		{
			ar(cereal::make_nvp("CurrBondDieIndex", m_nCurrBondDieIndex)
				, cereal::make_nvp("CurrBondHeadId", m_nCurrBondHeadId)
			);
		}
	};

private:
	UINT m_nCurrBondDieIndex = 0;
	UINT m_nNextDieIndex = 0;
	UINT m_nNeedBondDieNum = 0;
	UINT m_nBondedDieNum = 0;
	Input_Data m_InputData;

	CTransferTable* m_pTransferTable = nullptr;

private:
	//������
	//virtual LONG CheckParameter() override;
	//Ԥ���������ڼ��Step����ǰ��ǰ������
	virtual LONG Pretreatment() override;
	//����Step����
	virtual LONG Run() override;
	//���ݱ��棬����Step���к�����ݱ���
	virtual LONG PostData() override;

public:
	CStepTransferPick();
};