Skip to content
Snippets Groups Projects
elxDataManager.h 1.36 KiB
#ifndef __DataManager_h
#define __DataManager_h

#include <string>
#include <itkSimpleDataObjectDecorator.h>

#include "elxMacro.h"
#include "itkObjectFactory.h"
#include "itkLightObject.h"
#include "elxDataDirectories.h"

class DataManager : public itk::LightObject
{
public:

  elxNewMacro( DataManager, itk::LightObject );

  DataManager()
  {
    this->m_InputDirectory = ELASTIX_UNITTEST_INPUT_DATA_DIR;
    this->m_OutputDirectory = ELASTIX_UNITTEST_OUTPUT_DATA_DIR;
    this->m_BaselineDirectory = ELASTIX_UNITTEST_BASELINE_DATA_DIR;
  }

  std::string GetInputDirectory( void ) const { return this->m_InputDirectory; };
  std::string GetOutputDirectory( void ) const { return this->m_OutputDirectory; };
  std::string GetBaselineDirectory( void ) const { return this->m_BaselineDirectory; };

  const std::string GetInputFullPath( const std::string filename ) const;
  const std::string GetOutputFullPath( const std::string filename ) const;
  const std::string GetBaselineFullPath( const std::string filename ) const;

  std::string GetFolderSeparator() const
  {
#ifdef _WIN32
    return "\\";
#else
    return "/";
#endif
  } 

  std::string GetPathSeparator () const
  {
#ifdef _WIN32
    return ";";
#else
    return ":";
#endif
  }

private:

  std::string m_InputDirectory;
  std::string m_BaselineDirectory;
  std::string m_OutputDirectory;

};

#endif // #define __DataManager_h