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

//! \file DtAutoDriversRecord.h
//! \brief Contains makArchives::DtAutoDriversRecord class.
//! \ingroup makArchives

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

#pragma once

namespace makArchives
{
   //! \brief Record of which drivers to start automatically when
   //! the application starts
   //! \ingroup makArchives
   class DT_DLL_MAKARCHIVES DtAutoDriversRecord
   {
   public:
      DtAutoDriversRecord();
      ~DtAutoDriversRecord();
      DtAutoDriversRecord(const DtAutoDriversRecord& copy);
      DtAutoDriversRecord& operator=(const DtAutoDriversRecord& copy);

      const std::vector<std::string>& autoStartDrivers() const;
      void setAutoStartDrivers( const std::vector<std::string>& );

   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(myAutoStartDrivers);
      }


   protected:
      std::vector<std::string> myAutoStartDrivers;

   };
}

