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

#pragma once

#include <makArchives/DtSerialize.h>
#include <makArchives/DtModelPreloadRecord.h>

namespace makArchives
{
   //! Record of a collection of model preload definitions
   class DT_DLL_MAKARCHIVES DtModelPreloadSetRecord
   {
   public:
      //! CTOR
      DtModelPreloadSetRecord();

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

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

      //! List of model preload records
      typedef std::vector<std::string> ModelPreloadRecords;

      //! Set the model preload records in the collection
      void setModelPreloads(const ModelPreloadRecords& recs);

      //! Get the model preload records in the collection
      const ModelPreloadRecords& modelPreloads() const;

      //! Merge the model preload records with the collection
      void mergeWithModelPreloads(const ModelPreloadRecords& recs);

   protected:

      friend class boost::serialization::access;

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

      ModelPreloadRecords myModelPreloads;
   };
}
BOOST_CLASS_VERSION(makArchives::DtModelPreloadSetRecord, 1)

