Skip to content
Snippets Groups Projects
ElementData.cc 757 B
#include "ElementData.h"

namespace AMDiS {

  void ElementData::serialize(::std::ostream& out) {
    ::std::string decoratedType;
    if (decorated_) {
      decoratedType = decorated_->getTypeName();
      out << decoratedType << ::std::endl;
      decorated_->serialize(out);
    } else {
      out << "NULL" << ::std::endl;
    }
  }

  void ElementData::deserialize(::std::istream& in) {
    TEST_EXIT(decorated_ == NULL)
      ("there are already decorated element data\n");
    ::std::string decoratedType;
    in >> decoratedType; 
    in.get();
    if (decoratedType != "NULL") {
      decorated_ = CreatorMap<ElementData>::getCreator(decoratedType)->create();
      decorated_->deserialize(in);
    } else {
      decorated_ = NULL;
    };
  }

}