/******************************************************************************
** Copyright (c) 2014 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/
//! \file DtShadowSettingsCollectionRecord.h
//! \ingroup makArchives

#pragma once

#include <makArchives/DtShadowSettingsRecord.h>

namespace makArchives
{
   //! Record of a collection of shadow definitions
   class DT_DLL_MAKARCHIVES DtShadowSettingsCollectionRecord
   {
   public:
      //! CTOR
      DtShadowSettingsCollectionRecord();

      //! Copy CTOR
      DtShadowSettingsCollectionRecord(const DtShadowSettingsCollectionRecord& obj);

      //! Assignment operator
      DtShadowSettingsCollectionRecord& operator=(const DtShadowSettingsCollectionRecord& rhs);

      //! List of shadow settings records
      typedef std::vector<DtShadowSettingsRecord> ShadowSettingsRecords;

      //! Set the shadow settings records in the collection
      void setShadowSettingsRecords(const ShadowSettingsRecords& recs);

      //! Get the shadow settings records in the collection
      const ShadowSettingsRecords& shadowSettingsRecords() const;

      //! Get the shadow settings records in the collection
      ShadowSettingsRecords& shadowSettingsRecords();
   protected:
      friend class boost::serialization::access;

      template <class Archive>
      void serialize(Archive& ar, const unsigned int version)
      {
         ar & BOOST_SERIALIZATION_NVP(myShadowSettingsRecords);
      }

      ShadowSettingsRecords myShadowSettingsRecords;
   };
}
BOOST_CLASS_VERSION(makArchives::DtShadowSettingsCollectionRecord, 1)

