/******************************************************************************
** Copyright (c) 2011 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/

//! \file DtDistributedEnvironmentSettingsRecord.h
//! \brief Contains DtDistributedEnvironmentSettingsRecord class.
//! \ingroup makArchives

#pragma once

#include <makArchives/makArchives.h>
#include <vector>

namespace makArchives
{
   //! \brief A record for Distributed Environment settings
   //! \ingroup makArchives
   class DT_DLL_MAKARCHIVES DtDistributedEnvironmentSettingsRecord
   {
   public:

      //! \brief CTOR
      DtDistributedEnvironmentSettingsRecord();

      //! \brief Copy CTOR
      DtDistributedEnvironmentSettingsRecord(const DtDistributedEnvironmentSettingsRecord& orig);

      //! \brief Assignment OP
      DtDistributedEnvironmentSettingsRecord& operator=(const DtDistributedEnvironmentSettingsRecord& orig);

      //! \brief DTOR
      virtual ~DtDistributedEnvironmentSettingsRecord();

      virtual void setAllowSimEnvironmentEffectMessages(bool val);

      virtual bool allowSimEnvironmentEffectMessages() const;
      
   protected:

      friend class boost::serialization::access;

      //! When the class Archive corresponds to an output archive, the
      //! & operator is defined similar to <<.  Likewise, when the class Archive
      //! is a type of input archive the & operator is defined similar to >>.
      template<class Archive>
         void serialize(Archive & ar, const unsigned int version)
      {
         ar & BOOST_SERIALIZATION_NVP(myAllowSimEnvironmentEffectMessages);
      }

      bool myAllowSimEnvironmentEffectMessages;
   };
}

BOOST_CLASS_VERSION(makArchives::DtDistributedEnvironmentSettingsRecord, 0)


