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

#pragma once

#include <string>

#include "DllDefines.h"

class CSecGemVariable
{
public:
    int m_iID, m_iFormat, 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;

    CSecGemVariable* m_LotSecGemVariable;
    CSecGemVariable* m_InitialSecsGemVariable;
    CSecGemVariable* m_CommonRealTimeSGVariable;
    CSecGemVariable* m_EvtSecGemVariable;

    int m_iNumOfLotVariables;
    int m_iNumOfInitVariables;
    int m_iNumOfCommonRealTimeVariables;
    int m_iNumOfEvtVariables;

    DWORD m_dwJamThreadId;
};
