Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::NavigationToolStorageDeserializer Class Reference

This class offers methods to load an object of the class NavigationToolStorage from the harddisc. More...

#include <mitkNavigationToolStorageDeserializer.h>

List of all members.

Public Types

typedef
NavigationToolStorageDeserializer 
Self
typedef itk::Object Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
mitk::NavigationToolStorage::Pointer Deserialize (std::string filename)
 Loads a collection of navigation tools represented by a mitk::NavigationToolStorage from a file.
virtual std::string GetErrorMessage ()

Static Public Member Functions

static Pointer New (mitk::DataStorage::Pointer _arg)

Protected Member Functions

 NavigationToolStorageDeserializer (mitk::DataStorage::Pointer dataStorage)
 ~NavigationToolStorageDeserializer ()

Protected Attributes

std::string m_ErrorMessage
mitk::DataStorage::Pointer m_DataStorage

Detailed Description

This class offers methods to load an object of the class NavigationToolStorage from the harddisc.

Documentation

Definition at line 37 of file mitkNavigationToolStorageDeserializer.h.


Member Typedef Documentation

Definition at line 40 of file mitkNavigationToolStorageDeserializer.h.

Definition at line 40 of file mitkNavigationToolStorageDeserializer.h.

Definition at line 40 of file mitkNavigationToolStorageDeserializer.h.

Definition at line 40 of file mitkNavigationToolStorageDeserializer.h.


Constructor & Destructor Documentation

mitk::NavigationToolStorageDeserializer::NavigationToolStorageDeserializer ( mitk::DataStorage::Pointer  dataStorage ) [protected]

Definition at line 27 of file mitkNavigationToolStorageDeserializer.cpp.

References m_DataStorage.

  {
  m_DataStorage = dataStorage;
  }
mitk::NavigationToolStorageDeserializer::~NavigationToolStorageDeserializer (  ) [protected]

Definition at line 32 of file mitkNavigationToolStorageDeserializer.cpp.

  {

  }

Member Function Documentation

mitk::NavigationToolStorage::Pointer mitk::NavigationToolStorageDeserializer::Deserialize ( std::string  filename )

Loads a collection of navigation tools represented by a mitk::NavigationToolStorage from a file.

Returns:
Returns the storage which was loaded or NULL if there was an error in the loading process.

Definition at line 37 of file mitkNavigationToolStorageDeserializer.cpp.

References mitk::StandardFileLocations::GetInstance(), mitk::StandardFileLocations::GetOptionDirectory(), mitk::NavigationToolStorage::New(), mitk::SceneIO::New(), and mitk::NavigationToolReader::New().

  {
  //decomress zip file into temporary directory
  std::ifstream file( filename.c_str(), std::ios::binary );
  if (!file.good())
    {
    m_ErrorMessage = "Cannot open '" + filename + "' for reading";
    return NULL;
    }
  mitk::NavigationToolReader::Pointer myReader = mitk::NavigationToolReader::New(m_DataStorage);
  std::string tempDirectory = mitk::StandardFileLocations::GetInstance()->GetOptionDirectory() + Poco::Path::separator() + myReader->GetFileWithoutPath(filename);
  Poco::Zip::Decompress unzipper( file, Poco::Path( tempDirectory ) );
  unzipper.decompressAllFiles();


  //create DataNodes using the decomressed storage
  mitk::SceneIO::Pointer mySceneIO = mitk::SceneIO::New();
  mitk::DataStorage::Pointer readStorage = mySceneIO->LoadScene(tempDirectory + Poco::Path::separator() + myReader->GetFileWithoutPath(filename) + ".storage");
  mitk::NavigationToolStorage::Pointer returnValue = mitk::NavigationToolStorage::New();

  for(unsigned int i=0; i<readStorage->GetAll()->Size(); i++)
    {
    mitk::NavigationTool::Pointer newTool = myReader->ConvertDataNodeToNavigationTool(readStorage->GetAll()->ElementAt(i),tempDirectory);
    if (!returnValue->AddTool(newTool))
      {
      m_ErrorMessage = "Error can't parse data storage!";
      return NULL;
      }
    }

  //delete decompressed storage which is not needed any more
  std::remove((std::string(tempDirectory + Poco::Path::separator() + myReader->GetFileWithoutPath(filename) + ".storage")).c_str());

  return returnValue;
  }
virtual const char* mitk::NavigationToolStorageDeserializer::GetClassName (  ) const [virtual]
virtual std::string mitk::NavigationToolStorageDeserializer::GetErrorMessage (  ) [virtual]
static Pointer mitk::NavigationToolStorageDeserializer::New ( mitk::DataStorage::Pointer  _arg ) [inline, static]

Member Data Documentation

Definition at line 57 of file mitkNavigationToolStorageDeserializer.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines