/*******************************************************************************
** Copyright (c) 1998 MaK Technologies, Inc.
** All rights reserved.
*******************************************************************************/

//! \file lcPlayAction.h
//! \brief Contains DtLgrPlayActionPdu

#pragma once

#include "lcPdu.h"

//! Instances of DtLgrPlayActionPdu are to tell a remote logger 
//! what action to take initially when set to playback mode.
//! \ingroup loggerControlToolkit
class DT_DLL_LOGGERCONTROL DtLgrPlayActionPdu : public DtLgrControlPdu
{
public:

   //! (default) constructor
   DtLgrPlayActionPdu( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER );

   //! constructor (construct from network representation)
   DtLgrPlayActionPdu( const DtNetLgrControlPdu* initial,
      DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0 );

   //! constructor (construct and prepare for send)
   DtLgrPlayActionPdu( const DtEntityIdentifier& sender,
      const DtEntityIdentifier& receiver, DtLgrMode mode,
      DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER );

   //! destructor
   virtual ~DtLgrPlayActionPdu();

   //! copy constructor
   DtLgrPlayActionPdu( const DtLgrPlayActionPdu& src );

   //! assignment operator
   DtLgrPlayActionPdu& operator=( const DtLgrPlayActionPdu& src );

   //! Get/set action to take place when logger switched to playback mode.
   virtual DtLgrMode action() const;
   virtual void setAction( DtLgrMode cmd );

   //! Return correctly cast parameters pointer; see lgrControlP.h.
   virtual DtLgrIntParams* params() const;

private:
   //! Parameter
   DtLgrMode myAction;
};

