/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
****************************************************************************/

#pragma once

#include "glmSDKAPI.h"
#include "glmSmartPointer.h"

namespace glm
{
    // Interface for handling a void callBack (pointer on a void method/function to call)
    class GLM_SDK_API ICallBack : public ReferenceCounter
    {
    public:
        typedef SmartPointer<ICallBack> SP;

        GLM_ABSTRACTCLASS_STAT_ID( glm::MemoryStatIds::Simulation);

        virtual ~ICallBack();
        virtual void call(int64_t index) = 0; // Call the pointed method/function
    };

    //-------------------------------------------------------------------------
    inline ICallBack::~ICallBack()
    {
    }
} // namespace glm
