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

//! \file lcSetTime.h 
//! \brief Contains DtLgrSetTimePdu

#pragma once

#include "lcPdu.h"

//! Instances of DtLgrSetTimePdu are to tell a remote logger to 
//! go to time position HH:MM:SS.
//! \ingroup loggerControlToolkit
class DT_DLL_LOGGERCONTROL DtLgrSetTimePdu : public DtLgrControlPdu
{
public:

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

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

   //! constructor (construct and prepare for send)
   DtLgrSetTimePdu( const DtEntityIdentifier& sender,
      const DtEntityIdentifier& receiver, DtTime tm,
      DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER );

   //! destructor
   virtual ~DtLgrSetTimePdu();

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

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

   //! Get/set time to jump to within logger playback file.
   virtual DtTime time() const;
   virtual void setTime( DtTime tm );

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

   //! Diagnostic output.
   virtual void printData() const;

private:
   //! Parameter
   DtTime myTime;
};

