/*
**  Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
**
**  File:	onetimeaction.cpp
**
**  Author:  
**
**  Description:
**      Implementation of the training library "onetimeaction" interface.
**
**  History:
*/
#include    "pch.h"
#include    "OneTimeAction.h"

namespace Training
{
    //------------------------------------------------------------------------------
    // class methods
    //------------------------------------------------------------------------------
    /* void */  OneTimeAction::OneTimeAction (Action* pAction) : 
    m_pAction (pAction),
    m_bHasExecuted (false)
    {
    }

    //------------------------------------------------------------------------------
    /* void */  OneTimeAction::~OneTimeAction (void)
    {
        delete m_pAction;
    }

    //------------------------------------------------------------------------------
    void        OneTimeAction::Execute (void)
    {
        if (not m_bHasExecuted)
        {
            m_bHasExecuted = true;
            m_pAction->Execute ();
        }
    }

    //------------------------------------------------------------------------------
    void        OneTimeAction::Stop (void)
    {
        m_pAction->Stop ();
    }

    //------------------------------------------------------------------------------
}