#if !defined ISGMANAGER_H
#define ISGMANAGER_H

#ifdef SECSGEM_EXPORTS
#define SECSGEM_DLL __declspec(dllexport)
#else
#define SECSGEM_DLL __declspec(dllimport)
#endif

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ISGManager.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CSGManager document

/*************************************************************************************/
class ISGManagerObserver;

class SECSGEM_DLL ISGManager
{
public:
    virtual ~ISGManager()
    {
    }

    virtual bool    AcknowledgeRemoteCommand(CString sRmtCmd, int iReturnVal)                                                                                                                       = 0;
    virtual bool    AddRecipe(CString strName, bool bRefreshRecipe = false)                                                                                                                         = 0;
    virtual bool    ClearAllAlarms()                                                                                                                                                                = 0;
    virtual bool    CloseSecsGemApplication()                                                                                                                                                       = 0;
    virtual bool    DeleteAllRecipe(bool bRefreshRecipe = false)                                                                                                                                    = 0;
    virtual bool    DeleteRecipe(CString strName)                                                                                                                                                   = 0;
    virtual bool    ConnectSocketSecsGem()                                                                                                                                                          = 0;
    virtual void    DisableEventForAllMode()                                                                                                                                                        = 0;
    virtual bool    DisconnectSocketSecsGem()                                                                                                                                                       = 0;
    virtual bool    DisplayTerminalMsgDialog()                                                                                                                                                      = 0;
    virtual bool    DownloadData(CString strName)                                                                                                                                                   = 0;
    virtual bool    DownloadRecipe(CString strName)                                                                                                                                                 = 0;
    virtual bool    DownloadStripMap(CString strName)                                                                                                                                               = 0;
    virtual bool    DownloadWaferMap(CString sWMapID, int nType = 2, int nFormat = 1, int nFNLoc = 0, int nRotAngle = 0, int nOrgLoc = 0, CString strBinCodeEq = "", CString strNullBinCodeEq = "") = 0;
    virtual bool    EditRecipe(CString strName)                                                                                                                                                     = 0;
    virtual void    EnableEventForAllMode()                                                                                                                                                         = 0;
    virtual CString GetLinkState()                                                                                                                                                                  = 0;
    virtual bool    GoLocal()                                                                                                                                                                       = 0;
    virtual bool    GoOffline()                                                                                                                                                                     = 0;
    virtual bool    GoOnLine()                                                                                                                                                                      = 0;
    virtual bool    GoRemote()                                                                                                                                                                      = 0;
    virtual bool    IsConnectWithSecsGem()                                                                                                                                                          = 0;
    virtual bool    IsEnableCommunicating()                                                                                                                                                         = 0;
    virtual bool    IsOnlineLocal()                                                                                                                                                                 = 0;
    virtual bool    IsOnlineRemote()                                                                                                                                                                = 0;
    virtual bool    IsSpoolActive()                                                                                                                                                                 = 0;
    virtual bool    ResetData()                                                                                                                                                                     = 0;
    virtual bool    SecsGemDisableLink()                                                                                                                                                            = 0;
    virtual bool    SecsGemEnableLink()                                                                                                                                                             = 0;
    virtual bool    SendAlarmOff(UINT iAlarmID, CString sAlarmText)                                                                                                                                 = 0;
    virtual bool    SendAlarmOn(UINT iAlarmID, CString sAlarmText)                                                                                                                                  = 0;
    virtual void    SetEnableLogFile(bool bEnable)                                                                                                                                                  = 0;
    virtual bool    SendEPTData(int nModuleID, CString strTaskName, int nTaskType, int nEPTState, int nBlockedReson, CString strBlockedReasonText)                                                  = 0;
    virtual bool    SendEvent(unsigned int iEventID)                                                                                                                                                = 0;
    virtual bool    SendRecipeVerification(CString strResultData)                                                                                                                                   = 0;
    virtual void    SetLogLevel(CString level)                                                                                                                                                      = 0;
    virtual bool    SetMainMode(CString sMode)                                                                                                                                                      = 0;
    virtual bool    SetProcessState(CString sProcessState)                                                                                                                                          = 0;
    virtual void    SetSecsGemDataFileFolder(CString m_sSGDataFileFolder)                                                                                                                           = 0;
    virtual bool    SetSecsGemIpAddressAndPort(ISGManagerObserver * pObserver, int iPort, const char *pStrIpAddress, bool bConnect = false)                                                         = 0;
    virtual bool    SetUserLevel(CString sUserLevel)                                                                                                                                                = 0;
    virtual bool    SetVariableValue(UINT iVariableID, UINT iFormat, int iValue)                                                                                                                    = 0;
    virtual bool    SetVariableValue(UINT iVariableID, UINT iFormat, long iValue)                                                                                                                   = 0;
    virtual bool    SetVariableValue(UINT iVariableID, UINT iFormat, CString iValue)                                                                                                                = 0;
    virtual bool    SetVariableValue(UINT iVariableID, UINT iFormat, double iValue)                                                                                                                 = 0;
    virtual bool    StartSecsGemApplication()                                                                                                                                                       = 0;
    virtual bool    UpdateRecipeList()                                                                                                                                                              = 0;
    virtual bool    UploadData(CString strName)                                                                                                                                                     = 0;
    virtual bool    UploadRecipe(CString strName)                                                                                                                                                   = 0;
    virtual bool    UploadWaferMap(CString strName)                                                                                                                                                 = 0;
};
#endif // !defined(ISGMANAGER)
