//=========================================================================
//  Copyright (c) Kitware, Inc.
//  All rights reserved.
//  See LICENSE.txt for details.
//
//  This software is distributed WITHOUT ANY WARRANTY; without even
//  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
//  PURPOSE.  See the above copyright notice for more information.
//=========================================================================
// .NAME ResourceSetWriter.h - Writer for SMTK resource files
// .SECTION Description
// .SECTION See Also

#ifndef __smtk_io_ResourceSetWriter_h
#define __smtk_io_ResourceSetWriter_h

#include "smtk/CoreExports.h"
#include "smtk/PublicPointerDefs.h"
#include "smtk/SystemConfig.h"

#include "smtk/io/Logger.h"

#include "smtk/common/ResourceSet.h"

#include <string>

namespace smtk {
  namespace io {

class SMTKCORE_EXPORT ResourceSetWriter
{
 public:
  enum LinkedFilesOption
  {
    SKIP_LINKED_FILES = 0,
    EXPAND_LINKED_FILES,
    WRITE_LINKED_FILES
  };

  bool writeFile(
    std::string filename, const smtk::common::ResourceSet& resources,
    smtk::io::Logger& logger, LinkedFilesOption option = WRITE_LINKED_FILES);
  bool writeString(
    std::string& content, const smtk::common::ResourceSet& resources,
    smtk::io::Logger& logger, LinkedFilesOption option = WRITE_LINKED_FILES);

 protected:
};

  }  // namespace io
}  // namespace smtk

#endif // __smtk_io_ResourceSetWriter_h
