// SecGemData.h: interface for the CSecGemData class.
//
//////////////////////////////////////////////////////////////////////

#pragma once

#include <string>
#include <vector>

#include "DllDefines.h"

class CSecGemVariable
{
public:
    int         m_iID;
    int         m_iFormat;
    int         m_iEvt;
    std::string m_strSVIDValue;
};

enum
{
    WM_GET_LOT_VARIABLES = WM_USER + 3000,
    WM_GET_ALARM_TEXT,
    WM_CLEAR_SECGEM_ALARM,
};

class MCCTRDLLCLASS CSecGemData
{
public:
    static CSecGemData& Instance();
    //  get common real time variable
    bool GetCommonRealTimeVariable();

    //  get lot secs gem variable
    bool GetLotSecsGemVariable();

    //  get initial secs gem variable
    bool GetInitSecGemVariable();

    //  get event secs gem variable
    bool GetEvtSecsGemVariable();

private:
    CSecGemData();
    virtual ~CSecGemData();

    static CSecGemData theInstance;

    std::vector<CSecGemVariable> m_LotSecGemVariable;
    std::vector<CSecGemVariable> m_InitialSecsGemVariable;
    std::vector<CSecGemVariable> m_CommonRealTimeSGVariable;
    std::vector<CSecGemVariable> m_EvtSecGemVariable;

    int m_iNumOfLotVariables{ 0 };
    int m_iNumOfInitVariables{ 0 };
    int m_iNumOfCommonRealTimeVariables{ 0 };
    int m_iNumOfEvtVariables{ 0 };

    DWORD m_dwJamThreadId{ 0 };
};
